CN117435252B - 一种互斥锁的硬件实现装置、系统及应用方法 - Google Patents
一种互斥锁的硬件实现装置、系统及应用方法 Download PDFInfo
- Publication number
- CN117435252B CN117435252B CN202311753668.9A CN202311753668A CN117435252B CN 117435252 B CN117435252 B CN 117435252B CN 202311753668 A CN202311753668 A CN 202311753668A CN 117435252 B CN117435252 B CN 117435252B
- Authority
- CN
- China
- Prior art keywords
- register
- address
- result
- locking
- arbitration
- 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
Links
- 230000007717 exclusion Effects 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000015654 memory Effects 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 24
- 230000007246 mechanism Effects 0.000 claims description 18
- 238000012216 screening Methods 0.000 claims description 7
- 238000012545 processing Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及数据处理技术领域,公开了一种互斥锁的硬件实现装置、系统及应用方法,通过采用仲裁器从多个互斥锁请求中,确定仲裁结果,以选择器确定选择结果,并将选择结果发送至比较器,并以比较器通过锁定信息与选择结果,确定比较结果,并将比较结果发送至寄存器组,使得寄存器组通过比较结果与仲裁结果,完成互斥锁的锁定或解锁,这一过程中,通过仲裁器完成请求的筛选,通过选择器确定与锁定请求对应的资源池地址,并在比较器确定比较结果为可以锁定时,通过寄存器组将资源池地址进行锁定或解锁,从而以硬件实现互斥锁,避免了因消息队列所造成的对资源池的访问等待,提高了对共享资源加锁、解锁的响应速度,从而提升了数据的响应速度。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种互斥锁的硬件实现装置、系统及应用方法。
背景技术
互斥锁,即对共享的资源进行锁定,多个资源组成的集合称资源池,资源池中的资源通过地址(索引)进行区分。通过对共享资源进行锁定保证同一时刻只能有一个设备可以使用该资源。当多个设备申请访问同一资源,但该资源只能服务于其中一个设备时,这时已获取该资源的设备需要将资源锁定,防止其他设备操作。锁定后,此时资源的状态为“锁定”,其他设备不能更改;直到该设备释放资源,将资源的状态变成“非锁定”,其他的设备才能再次锁定该资源。互斥锁保证了每次只有一个设备对资源进行操作,从而保证了多设备情况下数据的正确性。
在相关技术中,为保证多设备下数据的正确性,通常采用软件的方式添加互斥锁,例如通过采用消息队列的方式对资源池中的地址进行配置,并在设备请求访问资源池中的地址时,通过将与设备相对应的标识信息假如消息队列的方式,通过消息队列中标识信息的排列顺序对资源池进行访问。在这一过程中,需要先对资源池中的地址进行配置,并针对每一个访问请求均需要将对应标识信息添加至队列中,在相邻标识对同一地址进行访问时,由于互斥锁的特性,将严重影响对其他地址的访问,降低了对共享资源加锁、解锁的响应速度,从而降低了数据的响应速度。
发明内容
有鉴于此,本发明提供了一种互斥锁的硬件实现装置、系统及应用方法,以解决对共享资源加锁、解锁响应速度低,从而降低数据的响应速度的技术问题。
第一方面,本发明提供了一种互斥锁的硬件实现装置,装置包括:仲裁器、选择器、比较器与寄存器组,其中,仲裁器分别与选择器、寄存器组相连接,比较器分别与选择器、寄存器组相连接,仲裁器,响应于至少一个互斥锁请求,确定仲裁结果,并将仲裁结果分别传输至选择器与寄存器组;选择器,响应于至少一个互斥锁请求与仲裁结果,确定选择结果,并将选择结果传输至比较器;比较器,基于选择结果与锁定信息,确定比较结果,并将比较结果传输至寄存器组;寄存器组,响应于至少一个互斥锁请求,将寄存器组中的对应寄存器清零;或,基于比较结果与仲裁结果,输出锁定结果。
结合第一方面,在第一方面的一种可能的实现方式中,互斥锁请求包括:至少一个地址信息,选择器,响应于至少一个地址信息,基于仲裁结果,确定与仲裁结果相对应的第一地址信息,并将第一地址信息作为选择结果传输至比较器。
结合第一方面,在第一方面的一种可能的实现方式中,互斥锁请求包括:至少一个解锁申请,寄存器组,响应于至少一个解锁申请,将与解锁申请对应的第一寄存器清零,完成第一寄存器的地址锁定的解除。
结合第一方面,在第一方面的一种可能的实现方式中,互斥锁请求包括:至少一个加锁申请,仲裁器,响应于至少一个加锁申请,通过仲裁机制,确定仲裁结果,并将仲裁结果传输至选择器与寄存器组。
结合第一方面,在第一方面的一种可能的实现方式中,寄存器组,还用于根据寄存器组中每个寄存器存储的地址信息,确定已锁定地址与使能信号,并将已锁定地址与使能信号传输至比较器。
结合第一方面,在第一方面的一种可能的实现方式中,锁定信息包括:已锁定地址与使能信号,比较器,根据使能信号,确定与使能信号对应的第二寄存器,并根据与第二寄存器对应的已锁定地址、选择结果,确定比较结果,将比较结果传输至寄存器组。
结合第一方面,在第一方面的一种可能的实现方式中,寄存器组,基于比较结果与仲裁结果,确定与比较结果、仲裁结果对应的第三寄存器,并对第三寄存器执行写地址操作,完成第三寄存器的地址的锁定。
第二方面,本发明提供了一种互斥锁的硬件实现装置的应用方法,方法包括:响应于至少一个加锁申请,通过仲裁机制,确定仲裁结果;基于仲裁结果,确定与仲裁结果相对应的第一地址信息;获取锁定信息;基于锁定信息与第一地址信息,确定比较结果;基于比较结果与仲裁结果,确定锁定结果。
结合第二方面,在第二方面的一种可能的实现方式中,锁定信息包括:已锁定地址与使能信号,基于锁定信息与第一地址信息,确定比较结果,包括:基于使能信号,确定与使能信号对应的第二寄存器;基于已锁定地址,筛选与第二寄存器对应的第二地址信息;比较第二地址信息与第一地址信息,确定比较结果。
结合第二方面,在第二方面的一种可能的实现方式中,在响应于加锁申请,通过仲裁机制,确定仲裁结果之前,方法还包括:响应于至少一个解锁申请,确定与每个解锁申请对应的第一寄存器;将第一寄存器存储的地址清零,完成第一寄存器的地址锁定的解除。
第三方面,本发明提供了一种互斥锁的硬件实现系统,系统包括如第一方面或其对应的任一实施方式的装置与至少一个设备,寄存器组包括至少一个寄存器,寄存器的数量与设备的数量相同,且一一对应,每个设备用于发送第一互斥锁请求。
结合第三方面,在第三方面的一种可能的实现方式中,每个设备还包括:计时装置,计时装置,用于在第一互斥锁请求与仲裁器确定的仲裁结果不一致时,记录等待时间;设备,在等待时间达到预设时间阈值时,放弃第一互斥锁请求,或,发起第二互斥锁请求。
第四方面,本发明提供了一种互斥锁的硬件实现系统的应用方法,方法包括:发送第一互斥锁请求,第一互斥锁请求包括至少一个加锁请求、与每个加锁请求对应的地址信息;基于至少一个加锁请求,通过仲裁机制,确定仲裁结果;基于仲裁结果与地址信息,确定与仲裁结果相对应的第一地址信息;基于地址信息,确定与使能信号与已锁定地址;基于使能信号,确定与使能信号对应的第二寄存器;基于已锁定地址,筛选与第二寄存器对应的第二地址信息;比较第二地址信息与第一地址信息,确定比较结果;基于比较结果与仲裁结果,确定锁定结果。
结合第四方面,在第四方面的一种可能的实现方式中,在基于至少一个加锁请求,通过仲裁机制,确定仲裁结果之后,方法还包括:获取与第一互斥锁请求相对应的等待时间;在等待时间达到预设时间阈值时,响应于第一互斥锁请求,确定第二互斥锁请求。
第五方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第二方面、第四方面或其对应的任一实施方式的应用方法。
本发明技术方案,具有如下优点:
本发明提供的一种互斥锁的硬件实现装置、系统及应用方法,该装置通过采用仲裁器从多个互斥锁请求中,确定仲裁结果,以选择器确定与仲裁结果相对应的互斥锁请求,并将选择结果发送至比较器,并以比较器通过锁定信息与选择结果,确定比较结果,并将比较结果发送至寄存器组,使得寄存器组通过比较结果与仲裁结果,完成互斥锁的锁定,或使寄存器组通过互斥锁请求,完成互斥锁的解锁,这一过程中,仲裁器所确定的仲裁结果选择器和寄存器组的输出造成影响,通过仲裁器完成请求的筛选,通过选择器确定与锁定请求对应的资源池地址,并在比较器确定比较结果为可以锁定时,通过寄存器组将资源池地址进行锁定或解锁,从而以硬件实现互斥锁,避免了因消息队列所造成的对资源池的访问等待,提高了对共享资源加锁、解锁的响应速度,从而提升了数据的响应速度。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的互斥锁的硬件实现装置的结构框图;
图2是根据本发明实施例提供的选择器的结构框图;
图3是根据本发明实施例提供的寄存器的结构框图;
图4是根据本发明实施例提供的比较器的结构框图;
图5是根据本发明实施例提供的互斥锁的硬件实现装置的应用方法的流程示意图;
图6是根据本发明实施例提供的互斥锁的硬件实现系统的结构框图;
图7是根据本发明实施例提供的互斥锁的硬件实现系统的应用方法的流程示意图;
图8是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种互斥锁的硬件实现装置,如图1所示,装置包括:仲裁器101、选择器102、比较器103与寄存器组104,其中,仲裁器101分别与选择器102、寄存器组104相连接,比较器103分别与选择器102、寄存器组104相连接,
仲裁器101,响应于至少一个互斥锁请求,确定仲裁结果,并将仲裁结果分别传输至选择器102与寄存器组104。
具体地,仲裁器101用于针对多个互斥锁请求对资源池中的地址申请加锁时,以仲裁器101内置的仲裁机制,确定仲裁结果,应该理解的是,确定仲裁结果的过程相当于确定执行哪个互斥锁请求的过程,即确定哪个请求可以被处理的过程。并在确定仲裁结果后,将确定的仲裁结果分别传输至选择器102与寄存器组104。
选择器102,响应于至少一个互斥锁请求与仲裁结果,确定选择结果,并将选择结果传输至比较器103。
具体地,选择器102用于基于仲裁结果,确定多个互斥锁请求中请求加锁的资源池中的地址,应该理解的是,确定选择结果的过程相当于通过仲裁结果确定执行哪个互斥锁请求的过程,即确定该互斥锁请求锁定的地址的过程。并在确定选择结果后,将选择结果传输至比较器103。
比较器103,基于选择结果与锁定信息,确定比较结果,并将比较结果传输至寄存器组104。
具体地,锁定信息包括已锁定地址与使能信号,锁定信息由寄存器组104传输至比较器103。
具体地,比较器103用于比较已锁定信息确定资源池中已被锁定的地址与选择结果所确定的地址,并根据两个地址是否存在重合,确定比较结果。应该理解的是,确定比较结果的过程相当于判断互斥锁请求锁定的地址是否已被锁定的过程。并将确定的比较结果传输至寄存器组104。
寄存器组104,响应于至少一个互斥锁请求,将寄存器组104中的对应寄存器清零;或,基于比较结果与仲裁结果,输出锁定结果。
具体地,寄存器组104,响应于至少一个互斥锁请求,将寄存器组104中的对应寄存器清零是指寄存器组104用于针对多个互斥锁请求对资源池中的地址申请解锁时,将寄存器组104中的对应寄存器存储的地址释放,即将寄存器组104中的对应寄存器清零,以便在该地址再次被申请锁定时,比较器103所获得锁定信息中不存在对应地址,即该地址可以被锁定。
具体地,寄存器组104,基于比较结果与仲裁结果,输出锁定结果是指通过比较结果确定与仲裁结果相对应的互斥锁请求能否被执行,即确定与加锁请求相对应的地址是否可以被锁定。在锁定结果为可以锁定时,寄存器组104中的对应寄存器执行写地址操作,将与加锁请求相对应的地址写入对应寄存器。在锁定结果为不可以锁定时,反馈不可以锁定的结果至对应的互斥锁请求发起端。
本发明提供的一种互斥锁的硬件实现装置,通过采用仲裁器从多个互斥锁请求中,确定仲裁结果,以选择器确定与仲裁结果相对应的互斥锁请求,并将选择结果发送至比较器,并以比较器通过锁定信息与选择结果,确定比较结果,并将比较结果发送至寄存器组,使得寄存器组通过比较结果与仲裁结果,完成互斥锁的锁定,或使寄存器组通过互斥锁请求,完成互斥锁的解锁,这一过程中,仲裁器所确定的仲裁结果选择器和寄存器组的输出造成影响,通过仲裁器完成请求的筛选,通过选择器确定与锁定请求对应的资源池地址,并在比较器确定比较结果为可以锁定时,通过寄存器组将资源池地址进行锁定或解锁,从而以硬件实现互斥锁,避免了因消息队列所造成的对资源池的访问等待,提高了对共享资源加锁、解锁的响应速度,从而提升了数据的响应速度。
在一种可选实施方式中,选择器102,如图2所示,包括:多个输入端、选择器控制端以及输出端,其中,互斥锁请求包括:至少一个地址信息,多个输入端分别输入至少一个互斥锁请求的地址信息,选择器控制端输入仲裁结果,输出端输出选择结果。
选择器102,响应于至少一个地址信息,基于仲裁结果,确定与仲裁结果相对应的第一地址信息,并将第一地址信息作为选择结果传输至比较器。
具体地,选择器102根据选择器控制端输入的仲裁结果,确定在多个输入端输入的地址信息中与仲裁结果想对应的地址信息,即确定第一地址信息,并将第一地址信息作为选择结果从输出端输出传输至比较器。从而在需要进行加锁时,通过比较器,利用仲裁结果从至少一个互斥锁请求中的地址信息中确定第一地址信息,即确定与仲裁结果相对应的地址信息,从而通过比较器完成确定互斥锁请求锁定的地址的过程。
在一种可选实施方式中,寄存器组104中的一个寄存器1041,如图3所示,包括:多个输入端和输出端,多个输入端分别输入解锁申请、比较结果、仲裁结果,在根据比较结果与仲裁结果确定加锁申请所对应的地址可以锁定时,寄存器1041执行写地址操作,将与加锁申请相对应的地址写入寄存器1041。输出端所对应的寄存器值输出是指锁定信息,锁定信息包括使能信号与被锁定地址,其中,被锁定地址用于表示寄存器1041已写入的地址,使能信号用于表示寄存器1041是否已写入地址,即表示寄存器1041的锁定状态,在没有写入地址时可以执行写地址操作,即可以执行加锁申请,因此将锁定信息发送至比较器103时,比较器103可以根据使能信号确定需要比较的寄存器,再根据需要比较的寄存器对应的已锁定地址与第一地址信息进行比较,从而较少数据计算量。
互斥锁请求包括:至少一个解锁申请,寄存器组104,响应于至少一个解锁申请,将与解锁申请对应的第一寄存器清零,完成第一寄存器的地址锁定的解除。
具体地,在寄存器1041的输入端输入解锁申请时,将寄存器1041存储的地址释放,即将寄存器1041清零,以便在该地址再次被申请锁定时,比较器103所获得锁定信息中不存在对应地址,从而确保该地址可以被锁定。
在一种可选实施方式中,互斥锁请求包括:至少一个加锁申请,仲裁器101,响应于至少一个加锁申请,通过仲裁机制,确定仲裁结果,并将仲裁结果传输至选择器与寄存器组。
具体地,仲裁机制是指如轮训仲裁、固定优先级仲裁等仲裁方式,本实施例对此不做具体限定,可根据实际工况进行设定,只要保证仲裁器通过仲裁机制可以确定仲裁结果即可。以互斥所申请分别为加锁申请1与加锁申请2,仲裁机制为固定优先级,加锁申请1优先级高于加锁申请2为例,仲裁器101在同时收到加锁申请1与加锁申请2时,根据仲裁机制,确定加锁申请1为仲裁结果,在该种情况下,加锁申请1对应的地址信息在选择器102中被确定为第一地址信息,即选择结果,并将加锁申请1对应的地址信息发送至比较器。从而通过仲裁器确定执行仲裁结果的过程相当于确定哪个加锁申请可以被处理的过程,从而在比较器中将仲裁结果对应的地址作为比较结果,为后续实现地址加锁提供数据基础。
在一种可选实施方式中,寄存器组104,还用于根据寄存器组中每个寄存器存储的地址信息,确定已锁定地址与使能信号,并将已锁定地址与使能信号传输至比较器。
具体地,根据寄存器组中每个寄存器存储的地址信息,确定已锁定地址与使能信号是指在寄存器中存储了地址信息时,对应使能信号置为有效,且寄存器中存储的地址为已锁定地址;在寄存器中未存储了地址信息时,对应使能信号置为无效。因此,被锁定地址用于表示对应寄存器已写入的地址,使能信号用于表示对应寄存器是否已写入地址。
在一种可选实施方式中,比较器103如图4所示,包括:比较器1031、比较器1032、比较器1033、比较器1034。应该理解的是,将比较器103分为比较器1031至比较器1034是为了更好与锁定信息形成对应从而便于理解。以比较器1031为例,比较器1031的输入端包括第一地址信息、寄存器1041的寄存器地址与寄存器1041的使能信号,其中,寄存器1041的寄存器地址是指寄存器1041的已锁定地址,寄存器1041的寄存器地址与寄存器1041的使能信号共同组成寄存器1041的锁定信息。
比较器103,根据使能信号,确定与使能信号对应的第二寄存器,并根据与第二寄存器对应的已锁定地址、选择结果,确定比较结果,将比较结果传输至寄存器组。
具体地,根据使能信号,确定与使能信号对应的第二寄存器是指根据使能信号的有效或无效状态,以寄存器组104中各寄存器对应的使能信号确定有哪些寄存器已写入地址,从而通过使能信号确定哪些寄存器具有已锁定地址,从而将使能信号为无效的寄存器过滤掉,从而减少比较器103与第一地址信息进行比较的地址数量,提升比较器确定比较结果的响应速度,进一步提高对共享资源加锁的响应速度。
具体地,根据与第二寄存器对应的已锁定地址、选择结果,确定比较结果是指比较器103根据第二寄存器的已锁定地址与第一地址信息进行比较,在第二寄存器中存储的地址信息与第一地址信息重合时,认为第一地址信息已被锁定,反之,则认为第一地址信息可以被锁定,从而确定比较结果。以寄存器1041、寄存器1042、寄存器1043的使能信号为无效,寄存器1044的使能信号为有效为例,则比较器103根据使能信号仅需判断寄存器1044的已锁定地址与第一地址信息是否相同,并在地址不同时,做出第一地址信息可以被锁定的比较结果。
在一种可选实施方式中,寄存器组104,基于比较结果与仲裁结果,确定与比较结果、仲裁结果对应的第三寄存器,并对第三寄存器执行写地址操作,完成第三寄存器的地址的锁定。
具体地,基于比较结果与仲裁结果,确定与比较结果、仲裁结果对应的第三寄存器,并对第三寄存器执行写地址操作,完成第三寄存器的地址的锁定是指在互斥锁请求为加锁申请时,基于比较结果与仲裁结果,确定与加锁申请对应的第三寄存器,并对第三寄存器执行写地址操作,将第一地址信息写入第三寄存器,从而完成第一地址信息的锁定,即完成第三寄存器的地址的锁定。
在一种可选实施方式,为完成互斥锁的加锁申请,本实施例提供了一种互斥锁的硬件实现装置的应用方法,如图5所示,方法包括如下步骤:
S201、响应于至少一个加锁申请,通过仲裁机制,确定仲裁结果。具体过程可参见上述实施例中关于仲裁器的相关描述,在此不再赘述。
S202、基于仲裁结果,确定与仲裁结果相对应的第一地址信息。具体过程可参见上述实施例中关于选择器的相关描述,在此不再赘述。
S203、获取锁定信息。
具体地,锁定信息包括:已锁定地址与使能信号,具体过程可参见上述实施例中关于寄存器组的相关描述,在此不再赘述。
S204、基于锁定信息与第一地址信息,确定比较结果。
在一种可选实施方式中,基于锁定信息与第一地址信息,确定比较结果,包括:
基于使能信号,确定与使能信号对应的第二寄存器。
基于已锁定地址,筛选与第二寄存器对应的第二地址信息。
比较第二地址信息与第一地址信息,确定比较结果。
上述各步骤的更进一步的描述可参见上述实施例中关于比较器的相关描述,在此不再赘述。
S205、基于比较结果与仲裁结果,确定锁定结果。具体过程可参见上述实施例中关于寄存器组的相关描述,在此不再赘述。
在一种可选实施方式,为完成互斥锁的解锁申请,方法还包括:
响应于至少一个解锁申请,确定与每个解锁申请对应的第一寄存器。
将第一寄存器存储的地址清零,完成第一寄存器的地址锁定的解除。
上述各步骤的更进一步的描述可参见上述实施例中关于寄存器组的相关描述,在此不再赘述。
本发明实施例提供了一种互斥锁的硬件实现系统,如图6所示,包括:设备21、设备22、设备23、设备24与上述实施例中的互斥锁的硬件实现装置,其中,存器组包括至少一个寄存器,寄存器的数量与设备的数量相同,且一一对应,每个与设备对应的寄存器用于存储该设备的锁定地址,并在其他设备申请锁定该地址时,通过寄存器向比较器提供的使能信号与已锁定地址,使其他设备的加锁请求失效,设备与寄存器的对应关系为设备21具有对应的寄存器1041、设备22具有对应的寄存器1042、设备23具有对应的寄存器1043、设备24具有对应的寄存器1044。其中,寄存器组104传输到比较器103的寄存器1041、寄存器1042、寄存器1043、寄存器1044分别表示对应寄存器的锁定信息,即对应寄存器的使能信号与已锁定地址。
具体地,每个设备用于发送第一互斥锁请求。互斥锁的硬件实现装置用于响应于第一互斥锁请求,通过仲裁器、选择器、比较器与寄存器组实现设备的加锁申请或解锁申请。具体过程参见上述实施例中互斥锁的硬件实现装置的相关描述,在此不再赘述。
在一种可选实施方式中,本实施例提供了一种互斥锁的硬件实现系统的应用方法,如图7所示,包括如下步骤:
S301、发送第一互斥锁请求,第一互斥锁请求包括至少一个加锁请求、与每个加锁请求对应的地址信息。具体过程参见上述实施例中关于设备的相关描述,在此不再进行赘述。
S302、基于至少一个加锁请求,通过仲裁机制,确定仲裁结果。
S303、基于仲裁结果与地址信息,确定与仲裁结果相对应的第一地址信息。
S304、基于地址信息,确定与使能信号与已锁定地址。
S305、基于使能信号,确定与使能信号对应的第二寄存器。
S306、基于已锁定地址,筛选与第二寄存器对应的第二地址信息。
S307、比较第二地址信息与第一地址信息,确定比较结果。
S308、基于比较结果与仲裁结果,确定锁定结果。
步骤S302至步骤S308的更进一步的描述可参见上述实施例中关于互斥锁的硬件实现装置的相关描述,在此不再赘述。
通过实施本实施例,通过设备与互斥锁的硬件实现装置构成以硬件的方式组成的互斥锁实现系统,通过该种方式实现互斥锁在需要增加互斥锁请求发起方,即需要新增设备时,仅需要增加与新增设备相对应的寄存器即可,仲裁器、选择器、比较器的判断逻辑无需改变,相较于通过软件方式实现互斥锁更为便捷,并且由于比较器及寄存器相互独立,当设备数量增加时只需要增加比较器个数和寄存器个数,并且比较过程并行执行,不会因为设备数量增多而增加比较时间,进一步提高了对共享资源加锁的响应速度,从而提升了数据的响应速度。
在一种可选实施方式中,每个设备还包括计时装置,系统包括:
计时装置,用于在第一互斥锁请求与仲裁器确定的仲裁结果不一致时,记录等待时间。
具体地,第一互斥锁请求与仲裁器确定的仲裁结果不一致是指由设备发起第一互斥锁请求经过仲裁器仲裁没有获得相应仲裁权,即,该设备不是仲裁结果对应的设备。
具体地,记录等待时间是指记录等待获取资源池中相应地址的时间。
设备,在等待时间达到预设时间阈值时,放弃第一互斥锁请求,或,发起第二互斥锁请求。
具体地,预设时间阈值可以根据实际工况进行设定,本实施例对此不做具体限定。在等待时间达到预设时间阈值时,放弃第一互斥锁请求是指在达到预设时间阈值时,放弃申请占用该资源。在等待时间达到预设时间阈值时,发起第二互斥锁请求是指在达到预设时间阈值时,申请其他地址的资源。
在一种可选实施方式中,本实施例提供了一种互斥锁的硬件实现系统的应用方法,方法包括如下步骤:
发送第一互斥锁请求,第一互斥锁请求包括至少一个加锁请求、与每个加锁请求对应的地址信息。具体过程参见上述实施例中关于设备的相关描述,在此不再进行赘述。
基于至少一个加锁请求,通过仲裁机制,确定仲裁结果。具体过程参见上述实施例中关于仲裁器的相关描述,在此不再进行赘述。
获取与第一互斥锁请求相对应的等待时间。具体过程参见上述实施例中关于计时装置的相关描述,在此不再进行赘述。
在等待时间达到预设时间阈值时,响应于第一互斥锁请求,确定第二互斥锁请求。具体过程参见上述实施例中关于计时装置的相关描述,在此不再进行赘述。
通过实施本实施例,通过增加计时装置,确定等待时间可以有效防止互斥锁冲突时,原互斥锁迟迟不解锁导致另一设备挂死,从而提高数据的响应速度。
请参阅图8,图8是本发明可选实施例提供的一种计算机设备的结构示意图,如图8所示,该计算机设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图8中以一个处理器401为例。
处理器401可以是中央处理器,网络处理器或其组合。其中,处理器401还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,所述存储器402存储有可由至少一个处理器401执行的指令,以使所述至少一个处理器401执行实现上述实施例示出的方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器402可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器402还可以包括上述种类的存储器的组合。该计算机设备还包括通信接口403,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种互斥锁的硬件实现装置,其特征在于,所述装置包括:仲裁器、选择器、比较器与寄存器组,其中,所述仲裁器分别与所述选择器、所述寄存器组相连接,所述比较器分别与所述选择器、所述寄存器组相连接,
所述仲裁器,响应于至少一个互斥锁请求,确定仲裁结果,并将所述仲裁结果分别传输至所述选择器与所述寄存器组;
所述选择器,响应于至少一个互斥锁请求与所述仲裁结果,确定选择结果,并将所述选择结果传输至所述比较器;
所述比较器,基于所述选择结果与锁定信息,确定比较结果,并将所述比较结果传输至所述寄存器组;
所述寄存器组,响应于至少一个互斥锁请求,将寄存器组中的对应寄存器清零;或,基于所述比较结果与所述仲裁结果,输出锁定结果;
其中,所述寄存器组,还用于根据寄存器组中每个寄存器存储的地址信息,确定已锁定地址与使能信号,并将所述已锁定地址与所述使能信号传输至所述比较器;使能信号用于表示对应寄存器是否已写入地址;
所述锁定信息包括:已锁定地址与使能信号,
所述比较器,根据所述使能信号,确定与所述使能信号对应的第二寄存器,并根据与所述第二寄存器对应的所述已锁定地址、所述选择结果,确定比较结果,将所述比较结果传输至所述寄存器组;
所述互斥锁请求包括:至少一个解锁申请,
所述寄存器组,响应于至少一个所述解锁申请,将与所述解锁申请对应的第一寄存器清零,完成所述第一寄存器的地址锁定的解除。
2.根据权利要求1所述的装置,其特征在于,所述互斥锁请求包括:至少一个地址信息,
所述选择器,响应于至少一个所述地址信息,基于所述仲裁结果,确定与所述仲裁结果相对应的第一地址信息,并将所述第一地址信息作为选择结果传输至所述比较器。
3.根据权利要求1所述的装置,其特征在于,所述互斥锁请求包括:至少一个加锁申请,
所述仲裁器,响应于至少一个所述加锁申请,通过仲裁机制,确定仲裁结果,并将所述仲裁结果传输至所述选择器与所述寄存器组。
4.根据权利要求1所述的装置,其特征在于,所述寄存器组,基于所述比较结果与所述仲裁结果,确定与所述比较结果、所述仲裁结果对应的第三寄存器,并对所述第三寄存器执行写地址操作,完成所述第三寄存器的地址的锁定。
5.一种互斥锁的硬件实现装置的应用方法,其特征在于,应用于如权利要求1至4中任一项所述的互斥锁的硬件实现装置,所述方法包括:
响应于至少一个解锁申请,确定与每个所述解锁申请对应的第一寄存器;
将所述第一寄存器存储的地址清零,完成所述第一寄存器的地址锁定的解除;
响应于至少一个加锁申请,通过仲裁机制,确定仲裁结果;
基于所述仲裁结果,确定与所述仲裁结果相对应的第一地址信息;
获取锁定信息;
基于所述锁定信息与所述第一地址信息,确定比较结果;
基于所述比较结果与所述仲裁结果,确定锁定结果;
所述锁定信息包括:已锁定地址与使能信号,所述基于所述锁定信息与所述第一地址信息,确定比较结果,包括:
基于所述使能信号,确定与所述使能信号对应的第二寄存器;
基于所述已锁定地址,筛选与所述第二寄存器对应的第二地址信息;
比较所述第二地址信息与所述第一地址信息,确定比较结果;
所述使能信号用于表示对应寄存器是否已写入地址。
6.一种互斥锁的硬件实现系统,其特征在于,所述系统包括:如权利要求1至4中任一项所述的互斥锁的硬件实现装置与至少一个设备,寄存器组包括至少一个寄存器,所述寄存器的数量与所述设备的数量相同,且一一对应,
每个所述设备用于发送第一互斥锁请求。
7.根据权利要求6所述的系统,其特征在于,每个所述设备还包括:计时装置,
所述计时装置,用于在所述第一互斥锁请求与所述仲裁器确定的仲裁结果不一致时,记录等待时间;
所述设备,在所述等待时间达到预设时间阈值时,放弃所述第一互斥锁请求,或,发起第二互斥锁请求。
8.一种互斥锁的硬件实现系统的应用方法,其特征在于,所述方法包括:
发送第一互斥锁请求,所述第一互斥锁请求包括至少一个加锁请求、与每个所述加锁请求对应的地址信息;
基于至少一个所述加锁请求,通过仲裁机制,确定仲裁结果;
基于所述仲裁结果与所述地址信息,确定与所述仲裁结果相对应的第一地址信息;
基于所述地址信息,确定与使能信号与已锁定地址;
基于所述使能信号,确定与所述使能信号对应的第二寄存器;
基于所述已锁定地址,筛选与所述第二寄存器对应的第二地址信息;
比较所述第二地址信息与所述第一地址信息,确定比较结果;
基于所述比较结果与所述仲裁结果,确定锁定结果。
9.根据权利要求8所述的方法,其特征在于,在所述基于至少一个所述加锁请求,通过仲裁机制,确定仲裁结果之后,方法还包括:
获取与所述第一互斥锁请求相对应的等待时间;
在所述等待时间达到预设时间阈值时,响应于所述第一互斥锁请求,确定第二互斥锁请求。
10.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求5或8、9中任一项所述的应用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311753668.9A CN117435252B (zh) | 2023-12-19 | 2023-12-19 | 一种互斥锁的硬件实现装置、系统及应用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311753668.9A CN117435252B (zh) | 2023-12-19 | 2023-12-19 | 一种互斥锁的硬件实现装置、系统及应用方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117435252A CN117435252A (zh) | 2024-01-23 |
CN117435252B true CN117435252B (zh) | 2024-03-15 |
Family
ID=89553805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311753668.9A Active CN117435252B (zh) | 2023-12-19 | 2023-12-19 | 一种互斥锁的硬件实现装置、系统及应用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117435252B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7420987B1 (en) * | 2002-01-17 | 2008-09-02 | Juniper Networks, Inc. | Arbiter for multiple mutually exclusive vectors |
CN114996178A (zh) * | 2022-06-30 | 2022-09-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种总线仲裁的方法、系统、设备和存储介质 |
WO2023160503A1 (zh) * | 2022-02-28 | 2023-08-31 | 华为技术有限公司 | 一种访问逻辑ip的软硬件交互方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030120878A1 (en) * | 2001-12-21 | 2003-06-26 | Andreassen Jens Kloster | Resource sharing using a locking mechanism in a multiprocessor environment |
CN110825312B (zh) * | 2018-08-10 | 2023-06-23 | 昆仑芯(北京)科技有限公司 | 数据处理装置、人工智能芯片及电子设备 |
-
2023
- 2023-12-19 CN CN202311753668.9A patent/CN117435252B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7420987B1 (en) * | 2002-01-17 | 2008-09-02 | Juniper Networks, Inc. | Arbiter for multiple mutually exclusive vectors |
WO2023160503A1 (zh) * | 2022-02-28 | 2023-08-31 | 华为技术有限公司 | 一种访问逻辑ip的软硬件交互方法及装置 |
CN114996178A (zh) * | 2022-06-30 | 2022-09-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种总线仲裁的方法、系统、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
基于树拓扑网络的分布式互斥算法;王莉;;计算机仿真;20090215(第02期);全文 * |
杨珺 ; 曹阳 ; 马秦生 ; 高洵 ; .基于提前仲裁和请求等待优先的仲裁策略.华南理工大学学报(自然科学版).2009,(第09期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN117435252A (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110647480B (zh) | 数据处理方法、远程直接访存网卡和设备 | |
KR920010915B1 (ko) | 멀티 프로세서 컴퓨터 시스템의 다중록 표시기 운영방법 및 장치 | |
CN108572876B (zh) | 一种读写锁的实现方法及装置 | |
US20160098299A1 (en) | Global lock contention predictor | |
JP4874165B2 (ja) | マルチプロセッサシステム及びマルチプロセッサシステムにおけるアクセス権設定方法 | |
US8850129B2 (en) | Memory ordered store system in a multiprocessor computer system | |
CN109446147B (zh) | 一种网络存储设备与pcie设备的数据交互方法 | |
US10503410B2 (en) | Apparatus and method for enforcing timing requirements for a memory device | |
US9606923B2 (en) | Information processing device with shared memory, memory order guarantee method using counters fence instructions in relation to cache-oriented requests, and recording medium storing program | |
CN114780248A (zh) | 资源访问方法、装置、计算机设备及存储介质 | |
US6928525B1 (en) | Per cache line semaphore for cache access arbitration | |
US11803447B2 (en) | Transaction processing method, apparatus, and electronic device for blockchain | |
US20180024951A1 (en) | Heterogeneous multi-processor device and method of enabling coherent data access within a heterogeneous multi-processor device | |
CN117435252B (zh) | 一种互斥锁的硬件实现装置、系统及应用方法 | |
CN105718589B (zh) | 访问文件的方法和装置 | |
KR20170117326A (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
CN111221573B (zh) | 一种寄存器访问时序的管理方法、处理器、电子设备及计算机可读存储介质 | |
US20140089902A1 (en) | Monitoring software performance | |
CN108062224B (zh) | 基于文件句柄的数据读写方法、装置及计算设备 | |
CN114356839B (zh) | 处理写操作的方法、设备、处理器及设备可读存储介质 | |
CN113220608B (zh) | 一种NVMe命令处理器及其处理方法 | |
US20160328276A1 (en) | System, information processing device, and method | |
US20040059563A1 (en) | Emulatd atomic instruction sequences in a multiprocessor system | |
US6502150B1 (en) | Method and apparatus for resource sharing in a multi-processor system | |
CN114063923A (zh) | 数据读取方法、装置、处理器及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |