CN115509986A - 核间通信方法、电子设备及存储介质 - Google Patents
核间通信方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115509986A CN115509986A CN202211193828.4A CN202211193828A CN115509986A CN 115509986 A CN115509986 A CN 115509986A CN 202211193828 A CN202211193828 A CN 202211193828A CN 115509986 A CN115509986 A CN 115509986A
- Authority
- CN
- China
- Prior art keywords
- core
- hardware semaphore
- interrupt
- inter
- preset memory
- 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
- 238000004891 communication Methods 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000012545 processing Methods 0.000 claims abstract description 44
- 238000004590 computer program Methods 0.000 claims description 12
- 230000007246 mechanism Effects 0.000 abstract description 17
- 208000013407 communication difficulty Diseases 0.000 abstract description 9
- 238000011161 development Methods 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 5
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000001960 triggered effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- 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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及嵌入式多核开发技术领域,提供一种核间通信方法、电子设备及存储介质,其中方法应用于异构多核处理器的第一核,异构多核处理器内置预设内存保护单元,包括:获取硬件信号量;确定占用硬件信号量所对应的锁定状态,锁定状态用于指示预设内存保护单元启动保护核间通信对应的共享内存;确定锁定状态被目标核解锁,向目标核发送中断指令,中断指令用于指示目标核占用硬件信号量处理任务。本申请不仅结合硬件信号量的锁定机制与中断机制,降低系统多核间的通信难度,提高异构多核处理器的并行处理能力,而且结合硬件信号量和内存保护机制能够更加高效和安全地实现异构多核处理器的共享内存通信目的。
Description
技术领域
本申请涉及嵌入式多核开发技术领域,尤其涉及核间通信方法、电子设备及存储介质。
背景技术
随着人工智能物联网的发展,异构多核处理器的运用也越来越广泛,为了发挥异构多核处理器的并行处理能力,选择有效合理的核间通信尤为重要。
相关技术中,核间通信主要通过硬件中断方式实现,异构多核处理器的多核之间通过硬件中断方式通知状态,从而实现实时响应中断的目的。
然而,由于硬件中断方式容易引起的问题是:如果核内存在多个任务,核间中断会打断正在运行的高优先级任务;如果在高优先级任务中屏蔽中断,在多次中断中只响应最后一次中断,前面的中断丢失;如果不屏蔽中断,实时性受到影响,从而导致核间通信难度较高,同时也降低了异构多核处理器的并行处理能力。
发明内容
本申请旨在至少解决相关技术中存在的技术问题之一。为此,本申请提出一种核间通信方法,通过结合硬件信号量的锁定机制和中断机制的方式降低系统多核间的通信难度,同时也能提高异构多核处理器的并行处理能力。
本申请还提出一种电子设备。
本申请还提出一种非暂态计算机可读存储介质。
本申请还提出一种计算机程序产品。
根据本申请第一方面实施例的核间通信方法,应用于异构多核处理器的第一核,所述异构多核处理器内置预设内存保护单元,所述方法包括:
获取硬件信号量;
确定占用所述硬件信号量所对应的锁定状态;其中,所述锁定状态用于指示所述预设内存保护单元启动保护核间通信对应的共享内存;
确定所述锁定状态被目标核解锁,向所述目标核发送中断指令,所述中断指令用于指示所述目标核占用所述硬件信号量处理任务。
根据本申请实施例的核间通信方法,通过先获取硬件信号量、再确定占用硬件信号量所对应的锁定状态的方式,实现通过新增的硬件信号量保证数据同步访问的目的;进一步的,通过确定锁定状态被目标核解锁时向目标核发送中断指令的方式,确保目标核占用硬件信号量处理任务,以此结合硬件信号量的锁定机制与中断机制,降低系统多核间的通信难度,同时也能提高异构多核处理器的并行处理能力;进一步的,由于异构多核处理器内置预设内存保护单元,且在异构多核处理器的第一核针对获取到的硬件信号量上锁占用时,通过启动预设内存保护单元即可实现保护核间通信对应的共享内存的目的,以此结合硬件信号量和内存保护机制能够更加高效和安全地实现异构多核处理器的共享内存通信目的。
根据本申请的一个实施例,所述获取硬件信号量,包括:
基于硬件信号量寄存器的当前预设数值,获取所述硬件信号量寄存器的当前使用状态;
确定所述当前使用状态为空闲状态,获取硬件信号量。
根据本申请的一个实施例,所述确定占用所述硬件信号量所对应的锁定状态,包括:
获取表征内核相同的内核状态信息,所述内核相同为锁定所述硬件信号量的核与访问所述硬件信号量的核相同;
基于所述内核状态信息,对所述硬件信号量寄存器进行上锁,并确定占用所述硬件信号量所对应的锁定状态。
根据本申请的一个实施例,在所述获取所述硬件信号量寄存器的当前使用状态之后,所述方法还包括:
确定所述当前使用状态为上锁状态,确定除所述第一核之外的其它核将各自访问所述硬件信号量的请求以中断请求的形式存放至中断管理队列中。
根据本申请的一个实施例,在所述获取硬件信号量之后,所述方法还包括:
获取所述预设内存保护单元对应保护的预设内存区域的数量;
确定所述预设内存区域的数量与共享内存通信的子区域的数量满足预设条件,对所述预设内存区域进行配置。
根据本申请的一个实施例,所述对所述预设内存区域进行配置,包括:
将所述预设内存区域划分为预设数量的预设内存子区域,并为不同的任务配置不同的所述预设内存子区域以及每个所述预设内存子区域的属性。
根据本申请的一个实施例,所述向所述目标核发送中断指令,包括:
指示中断管理队列向所述目标核发送所述中断指令;
所述中断管理队列还用于:存放除所述第一核之外的其它核访问所述硬件信号量时形成的不同中断请求,基于所述不同中断请求的进队顺序确定目标中断请求,并确定所述目标中断请求对应的核为所述目标核。
本申请实施例中的上述一个或多个技术方案,至少具有如下技术效果之一:通过在确定内核相同时对硬件信号量寄存器上锁成功的方式,确定占用硬件信号量所对应的锁定状态,提高了占用硬件信号量的可靠性和高效性。
进一步的,通过确定硬件信号量寄存器为上锁状态时指示其它核访问硬件信号量的请求以中断请求的形式存放至中断管理队列中的方式,实现确保处理实时性和平衡处理效率的目的,进一步降低了系统多核件的通信难度,提高了异构多核处理器的并行处理能力。
更进一步的,第一核获取到硬件信号量时先获取预设内存保护单元对应保护的预设内存区域的数量,再进一步确定预设内存区域的数量与共享内存通信的子区域的数量满足预设条件时对预设内存区域进行配置,以此通过在异构多核处理器中新增预设内存保护单元的方式,实现核间通信时确保数据的可靠性和安全性的目的。
再进一步的,通过将预设内存区域划分为预设数量的预设内存子区域的方式,实现为核内不同的任务配置不同的预设内存子区域以及每个预设内存子区域的属性的目的,不仅扩展区域配置的灵活性,而且也能确保数据的安全性,从而最大效能的对共享内存进行保护。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的核间通信方法的流程示意图;
图2是本申请实施例提供的异构多核处理器的系统框图;
图3是本申请实施例提供的核间通信装置的结构示意图;
图4是本申请实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合图1-图4描述本申请的核间通信方法、电子设备及存储介质,其中核间通信方法应用于异构多核处理器中,该异构多核处理器的系统总线中挂载有硬件信号量(Hardware Semaphore,HSEM)寄存器,HSEM寄存器的数量可以为1个,也可以为多个,并且至少一个HSEM寄存器和一个独立的中断管理单元结合使用,异构多核处理器中每个核都可以在HSEM寄存器处于空闲状态时占用硬件信号量处理任务,中断管理单元用于向不同的核触发中断,并且针对不同的核所触发的中断标识也会不同;与此同时,其中,异构多核处理器内置有预设内存保护单元,预设内存保护单元用于结合硬件信号量保护核间通信对应的共享内存;其中,预设内存保护单元可以是存储保护单元(Memory Protect Unit,MPU)/物理内存保护(Physical Memory Protection,PMP)。此处对预设内存保护单元的具体形式不作限定。
需要说明的是,下述方法实施例以执行主体为异构多核处理器中第一核为例进行说明,且第一核可以为异构多核处理器中的任意一个核。
图1为本申请提供的核间通信方法的流程示意图,如图1所示,该核间通信方法,应用于异构多核处理器的第一核,异构多核处理器内置预设内存保护单元,包括以下步骤:
步骤110、获取硬件信号量。
具体的,第一核获取硬件信号量,可以是通过访问HSEM寄存器获取,HSEM寄存器可以是由多个独立的硬件信号量组成,多个硬件信号量和硬件资源以及核之间没有必然联系,可以由软件根据每个核处理任务的多少分配,比如,任务多的核获得更多的硬件信号量,任务少的核则获得较少的硬件信号量。
步骤120、确定占用硬件信号量所对应的锁定状态;其中,锁定状态用于指示预设内存保护单元启动保护核间通信对应的共享内存。
具体的,当第一核获取到硬件信号量时可以占用该硬件信号量,从而确定占用该硬件信号量所对应的锁定状态,以使得硬件信号量被第一核占用处于锁定状态。并且,当硬件信号量被第一核占用处于锁定状态时,可以认为是由第一核处理比较紧急的任务,此时可以利用预设内存保护单元对核间通信对应的共享内存进行保护。
步骤130、确定锁定状态被目标核解锁,向目标核发送中断指令,中断指令用于指示目标核占用硬件信号量处理任务。
具体的,第一核确定锁定状态被目标核解锁,可以理解第一核占用硬件信号量处理任务结束且硬件信号量lock后被目标核释放,因此,硬件信号量lock后被目标核释放的过程,也是第一核占用硬件信号量处理较紧急任务的过程。目标核可以为异构多核处理器中除第一核之外的其它核中需要处理较紧急任务的核,基于此,硬件信号量lock后被目标核释放时,即可向目标核发送中断指令,以使得目标核占用该硬件信号量后做任务处理。
本申请提供的核间通信方法,通过先获取硬件信号量、再确定占用硬件信号量所对应的锁定状态的方式,实现通过新增的硬件信号量保证数据同步访问的目的;进一步的,通过确定锁定状态被目标核解锁时向目标核发送中断指令的方式,确保目标核占用硬件信号量处理任务,以此结合硬件信号量的锁定机制与中断机制,降低系统多核间的通信难度,同时也能提高异构多核处理器的并行处理能力;进一步的,由于异构多核处理器内置预设内存保护单元,且在异构多核处理器的第一核针对获取到的硬件信号量上锁占用时,通过启动预设内存保护单元即可实现保护核间通信对应的共享内存的目的,以此结合硬件信号量和内存保护机制能够更加高效和安全地实现异构多核处理器的共享内存通信目的。
可以理解的是,当异构多核处理器访问硬件信号量的核较多时,可以考虑先由中断管理单元以队列的方式暂存其他核的访问请求、再基于访问请求的顺序确定目标核后发送中断指令。基于此,向目标核发送中断指令,包括:
指示中断管理队列向目标核发送所述中断指令;
中断管理队列还用于:存放除第一核之外的其它核访问硬件信号量时形成的不同中断请求,基于不同中断请求的进队顺序确定目标中断请求,并确定目标中断请求对应的核为目标核。
具体的,第一核处理任务期间,若异构多核处理器中除第一核之外的其它核访问HSEM寄存器的硬件信号量时,则会分别以中断请求的形式存放至中断管理单元的中断管理队列中,每个中断请求分别标识访问HSEM寄存器的核的名称,以使得第一核占用硬件信号量处理任务直至处理结束时,可触发任务管理队列向目标核发送中断指令。此处中断管理队列可以基于不同中断请求的进队顺序确定出队顺序,也即中断管理队列可以基于先进先出的方式从存放的不同中断请求中确定目标中断请求,并确定目标中断请求对应的核为目标核,以便于向目标核发送中断指令。进一步的,中断管理队列还可以基于预先设置的中断请求优先级,从多个不同中断请求中确定优先级最高的目标中断请求。本申请对中断管理队列确定目标中断请求的方式不作具体限定。
本申请实施例提供的核间通信方法,通过由中断管理队列存放除第一核之外的其它核的中断请求,以及从不同中断请求对应的核中确定目标核的方式,确保了核间通信的实时性和处理效率的平衡性。
可以理解的是,HSEM寄存器可以预先设定不同数值及每个数值所指代的使用状态,以使得第一核快速获取硬件信号量。基于此,步骤110的具体实现过程可以包括:
首先,基于硬件信号量寄存器的当前预设数值,获取硬件信号量寄存器的当前使用状态;再进一步确定当前使用状态为空闲状态,获取硬件信号量。
具体的,本申请针对异构多核处理器的系统总线中挂载新增的HSEM寄存器,可以预设HSEM寄存器包括空闲(free)状态和锁定(lock)状态,当HSEM寄存器在free状态时,HSEM寄存器的预设数值为0,即锁标记位为0;此时,第一核获取到HSEM寄存器的当前预设数值为0,则可以确定HSEM寄存器的当前使用状态为空闲状态,那么访问HSEM寄存器的第一核可以捕获硬件信号量。
本申请提供的核间通信方法,基于硬件信号量寄存器的当前预设数值获取硬件信号量寄存器的当前使用状态,并确定当前使用状态为空闲状态时获取硬件信号量,以此结合硬件信号量寄存器的当前使用状态获取硬件信号量的方式,大幅提高了获取硬件信号量的稳定性和可靠性,也能确保数据的同步访问。
可以理解的是,为了确保硬件信号量由第一核占用并上锁使用,可以先由异构多核处理器的硬件系统判断其内核是否相同,并确定内核相同时再占用上锁。基于此,步骤120的具体实现过程可以包括:
首先,获取表征内核相同的内核状态信息;再进一步基于内核状态信息,对硬件信号量寄存器进行上锁,并确定占用硬件信号量所对应的锁定状态,内核相同为锁定硬件信号量的核与访问硬件信号量的核相同。
具体的,针对HSEM寄存器的当前使用状态为空闲状态的情况,当第一核获取到硬件信号量时,可以先判断是否可以获取到表征内核相同的内核状态信息,如果可以获取到内核状态信息,也即内核相同时,第一核对硬件信号量寄存器上锁且上锁成功;反之,如果没有获取到内核状态信息,也即内核不相同时,第一核对硬件信号量寄存器上锁会上锁失败。进一步的,当针对硬件信号量寄存器上锁成功时,可以确定占用硬件信号量所对应的锁定状态。
可以理解的是,针对HSEM寄存器的当前使用状态为lock状态的情况,若第一核对HSEM寄存器进行上锁,如果内核相同则上锁成功,锁标记位继续加1,但不会改变当前HSEM寄存器的任何状态。
可以理解的是,此处获取表征内核相同的内核状态信息是,可以是由异构多核处理器的硬件系统判断,比如,若访问硬件信号量寄存器的核与锁定硬件信号量寄存器的核相同,则可以判定内核相同,反之,若访问硬件信号量寄存器的核与锁定硬件信号量寄存器的核不同,则可以判定内核不同。此处对硬件系统判断内核是否相同的方式不作具体限定。
本申请提供的核间通信方法,通过在确定内核相同时对硬件信号量寄存器上锁成功的方式,确定占用硬件信号量所对应的锁定状态,提高了占用硬件信号量的可靠性和高效性。
可以理解的是,考虑到硬件信号量被第一核占用时其它核也会访问硬件信号量,此时可以通过队列形式存放中断请求的方式保证实时性和处理效率之间的平衡。基于此,在确定硬件信号量的当前使用状态之后,本申请方法还可以包括:
确定当前使用状态为上锁状态,指示除第一核之外的其它核将各自访问硬件信号量的请求以中断请求的形式存放至中断管理队列中。
具体的,由于中断管理队列可以用于基于先进先出的方式以及不同中断请求的进队顺序,从不同中断请求对应的不同的核中确定目标核以及向目标核发送中断指令,因此,在第一核占用硬件信号量处于lock状态的过程中,如果异构多核处理器中除第一核之外的其它核访问硬件信号量,则可以指示其它核访问硬件信号量的请求以中断请求的方式存放至中断管理队列中,以使得第一核lock硬件信号量后被目标核释放时,中断管理队列即可向目标核发送中断指令。
可以理解的是,由于每个核处理任务时所需的硬件信号量并不相同,因此可以中断管理队列可以先基于不同的目标核触发不同的中断标识,再基于所触发的中断标识向对应的目标核发送中断指令,从而使得目标核占用合理且充足的硬件信号量处理任务。
可以理解的是,考虑到Linux中使用工作队列的方法实现中断处理中的顶半部底半部机制,顶半部可以用于完成尽量少的比较紧急的功能,底半部可以使用工作队列的方式处理不是非常紧急的且相对比较耗时的任务,因此,本申请采用中断管理队列的方式保证实时性和处理效率之间的平衡,也即,第一核lock硬件信号量后被目标核释放的过程可以理解为顶半部的处理操作,中断管理队列向目标核发送中断指令且目标核占用硬件信号量进行任务处理的过程,可以对应为底半部的处理操作。
本申请提供的核间通信方法,通过确定硬件信号量寄存器为上锁状态时指示其它核访问硬件信号量的请求以中断请求的形式存放至中断管理队列中的方式,实现确保处理实时性和处理效率之间的平衡的目的,进一步降低了系统多核件的通信难度,提高了异构多核处理器的并行处理能力。
可以理解的是,由于核间通信不止包括硬件中断,还包括共享数据空间,并且共享数据空间是指多核异构处理器中的多核都可以访问同一块内存空间,根据其信息来交换数据和状态,因此可通过新增内存保护单元的方式对进行保护并确保数据的安全性。基于此,在获取硬件信号量之后,本申请方法还可以包括:
首先,获取预设内存保护单元对应保护的预设内存区域的数量;再进一步确定预设内存区域的数量与共享内存通信的子区域的数量满足预设条件,对预设内存区域进行配置。
其中,预设内存保护单元可以针对异构多核处理器中多核访问的共享内存设置,并且,预设内存保护单元对应保护的预设内存区域可以基于核间通信对应的共享内存确定,比如预设内存保护单元对应保护的预设内存区域可以为核间通信对应的共享内存的全部区域。此外,预设内存保护单元对应保护的预设内存区域可以预先设置,比如可以预先设置预设内存区域的数量,也可以预设设置每个预设内存区域的大小和起始地址。此外,预设内存区域的数量与共享内存通信的子区域的数量满足预设条件,可以是预设内存区域的数量与共享内存通信的子区域的数量相同。
具体的,第一核可以获取预设内存保护单元对应保护的预设内存区域的数量,并在确定预设内存区域的数量与共享内存通信的子区域的数量满足预设条件,以及第一核获取到硬件信号量的情况下,第一核可以对预设内存区域进行配置,比如第一核内所有任务都针对该预设内存区域进行访问;并且在第一核配置的预设内存区域内,其它核对该预设内存区域的数据无法访问,以此进行数据保护及确保数据安全。
本申请提供的核间通信方法,第一核获取到硬件信号量时先获取预设内存保护单元对应保护的预设内存区域的数量,再进一步确定预设内存区域的数量与共享内存通信的子区域的数量满足预设条件时对预设内存区域进行配置,以此通过在异构多核处理器中新增预设内存保护单元的方式,实现核间通信时确保数据的可靠性和安全性的目的。
可以理解的是,由于核内的多个任务都访问整个预设内存区域时虽能保护数据安全,却不能最大效能的保护共享内存,因此可以通过对预设内存区域进行子区域划分的方式为核内的不同任务配置对应子区域。基于此,对预设内存区域进行配置,其实现过程可以包括:
将预设内存区域划分为预设数量的预设内存子区域,并为不同的任务配置不同的预设内存子区域以及每个预设内存子区域的属性。
具体的,将预设内存区域划分为预设数量的预设内存子区域,可以是将预设内存区域划分为2的指数幂个等长的预设内存子区域,预设内存子区域的数量可以为4、8或者16;并且核内的不同任务也可以细化不同的数据访问权限;进一步的,当第一核对预设内存区域进行配置时,可以为核内的不同任务配置预设内存区域内的不同预设内存子区域以及每个预设内存子区域的属性,属性可以包括但不限定每个预设内存子区域的容量大小和访问权限;比如,核上运行的操作系统可以将整块的预设内存区域作为配置的地址空间,设置系统的访问区域和权限,也可以为核内的某个任务使用到的任务栈空间设置独立的预设内存区域和访问权限。
本申请提供的核间通信方法,通过将预设内存区域划分为预设数量的预设内存子区域的方式,实现为核内不同的任务配置不同的预设内存子区域以及每个预设内存子区域的属性的目的,不仅扩展区域配置的灵活性,而且也能确保数据的安全性,从而最大效能的对共享内存进行保护。
示例性的,如图2所示,异构多核处理器包括微控制单元(Microcontroller Unit,MCU)/Risv-V核以及数字信号处理(Digital Signal Processing,DSP)/嵌入式神经网络处理器(Neural-network Processing Unit,NPU)、HSEM寄存器、中断管理(InterruptManagment)单元、MPU/PMP以及随机存取存储器(Random Access Memory,RAM);其中,MCU/Risv-V核以及DSP/NPU为异构多核处理器中的多个核,MPU/PMP为预设内存保护单元,RAM为共享内存单元,RAM不仅是核间通信的共享内存,也可以用于读写硬件信号量的中断服务程序;另外,每个核具备一组中断使能,用于控制和清除寄存器,也即,当硬件信号量被占用处于lock状态时,其它核访问硬件信号量的请求以中断请求的方式被发布至中断管理单元的中断管理队列中排队,一旦硬件信号量被目标核释放,则中断管理队里采用先进先出的方式给目标核发送中断指令,以使得目标核占用该硬件信号量后对任务做出处理。
基于此,当MCU/Risc-v确定HSEM寄存器为free状态时,MCU/Risc-v可以获取HSEM寄存器的硬件信号量且确定占用该硬件信号量所对应的lock状态,在MCU/Risc-v锁定硬件信号量的过程中,若DSP/NPU访问硬件信号量,则将DSP/NPU访问硬件信号量的访问请求以中断请求的方式存放至中断管理单元的中断管理队列中,当硬件信号量lock后被DSP/NPU释放时,再由中断管理队列向DSP/NPU发送中断指令,以使得DSP/NPU占用硬件信号量处理任务;同样的,当DSP/NPU确定HSEM寄存器为free状态时,DSP/NPU可以获取HSEM寄存器的硬件信号量且确定占用该硬件信号量所对应的lock状态,在DSP/NPU锁定硬件信号量的过程中,若MCU/Risc-v访问硬件信号量,则将MCU/Risc-v访问硬件信号量所的访问请求以中断请求的方式存放至中断管理单元的中断管理队列中,当硬件信号量lock后被MCU/Risc-v释放时,再由中断管理队列向MCU/Risc-v发送中断指令,以使得MCU/Risc-v占用硬件信号量处理任务。
并且,在MCU/Risc-v或者DSP/NPU获取到硬件信号量,以及预设内存区域的数量与共享内存通信的子区域的数量满足预设条件时,MCU/Risc-v或者NSP/NPU才可以对预设内存区域进行配置,既可以粗略为核内所有任务配置预设内存区域,也可以将预设内存区域划分为多个预设内存子区域的精细配置方式,为核内不同任务配置相同的预设内存子区域,以此实现最大效能的保护共享内存的目的。
本申请提供的核间通信方法,通过在硬件中断方式的基础上,新增硬件信号量寄存器保证数据的同步访问,并将硬件信号量的锁定机制与中断机制结合起来,进一步降低系统多核间的通信难度,提高多核处理器的并行处理能力;以及通过新增预设内存保护单元,在异构多核处理器的某个核配置的预设内存区域内,其他核对该预设内存区域内的数据无法访问,而且该核内的不同任务也可以细化不同的数据访问权限,减少数据安全问题。
下面对本申请提供的核间通信装置进行描述,下文描述的核间通信装置与上文描述的核间通信方法可相互对应参照。
参照图3,为本申请提供的核间通信装置的结构示意图,如图3所示,该核间通信装置300,包括:
获取模块310,用于获取硬件信号量;
确定模块320,用于确定占用硬件信号量所对应的锁定状态;其中,锁定状态用于指示预设内存保护单元启动保护核间通信对应的共享内存;
核间通信模块330,用于确定锁定状态被目标核解锁,向目标核发送中断指令,中断指令用于指示目标核占用硬件信号量处理任务。
可以理解的是,获取模块310,具体可以用于基于硬件信号量寄存器的当前预设数值,获取硬件信号量寄存器的当前使用状态;确定当前使用状态为空闲状态,获取硬件信号量。
可以理解的是,确定模块320,具体可以用于获取表征内核相同的内核状态信息,内核相同为锁定硬件信号量的核与访问硬件信号量的核相同;基于内核状态信息,对硬件信号量寄存器进行上锁,并确定占用硬件信号量所对应的锁定状态。
可以理解的是,核间通信模块330,具体可以用于确定当前使用状态为上锁状态,指示除第一核之外的其它核将各自访问硬件信号量的请求以中断请求的形式存放至中断管理队列中。
可以理解的是,本申请提供的核间通信装置还可以包括配置模块,具体可以用于获取预设内存保护单元对应保护的预设内存区域的数量;确定预设内存区域的数量与共享内存通信的子区域的数量满足预设条件,对预设内存区域进行配置。
可以理解的是,配置模块,具体还可以用于将预设内存区域划分为预设数量的预设内存子区域,并为不同的任务配置不同的预设内存子区域以及每个预设内存子区域的属性。
可以理解的是,核间通信模块330,具体可以用于:指示中断管理队列向目标核发送所述中断指令;中断管理队列还用于:存放除第一核之外的其它核访问硬件信号量时形成的不同中断请求,基于不同中断请求的进队顺序确定目标中断请求,并确定目标中断请求对应的核为目标核。
本申请提供的核间通信装置,通过先获取硬件信号量、再确定占用硬件信号量所对应的锁定状态的方式,实现通过新增的硬件信号量保证数据同步访问的目的;进一步的,通过确定锁定状态被目标核解锁时向目标核发送中断指令的方式,确保目标核占用硬件信号量处理任务,以此结合硬件信号量的锁定机制与中断机制,降低系统多核间的通信难度,同时也能提高异构多核处理器的并行处理能力;进一步的,由于异构多核处理器内置预设内存保护单元,且在异构多核处理器的第一核针对获取到的硬件信号量上锁占用时,通过启动预设内存保护单元即可实现保护核间通信对应的共享内存的目的,以此结合硬件信号量和内存保护机制能够更加高效和安全地实现异构多核处理器的共享内存通信目的。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备400可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行如下方法:
获取硬件信号量;
确定占用硬件信号量所对应的锁定状态;其中,锁定状态用于指示预设内存保护单元启动保护核间通信对应的共享内存;
确定锁定状态被目标核解锁,向目标核发送中断指令,中断指令用于指示目标核占用硬件信号量处理任务。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
获取硬件信号量;
确定占用硬件信号量所对应的锁定状态;其中,锁定状态用于指示预设内存保护单元启动保护核间通信对应的共享内存;
确定锁定状态被目标核解锁,向目标核发送中断指令,中断指令用于指示目标核占用硬件信号量处理任务。
又一方面,本申请实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的传输方法,例如包括:
获取硬件信号量;
确定占用硬件信号量所对应的锁定状态;其中,锁定状态用于指示预设内存保护单元启动保护核间通信对应的共享内存;
确定锁定状态被目标核解锁,向目标核发送中断指令,中断指令用于指示目标核占用硬件信号量处理任务。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是,以上实施方式仅用于说明本申请,而非对本申请的限制。尽管参照实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,对本申请的技术方案进行各种组合、修改或者等同替换,都不脱离本申请技术方案的精神和范围,均应涵盖在本申请的权利要求范围中。
Claims (10)
1.一种核间通信方法,其特征在于,应用于异构多核处理器的第一核,所述异构多核处理器内置预设内存保护单元,所述方法包括:
获取硬件信号量;
确定占用所述硬件信号量所对应的锁定状态;其中,所述锁定状态用于指示所述预设内存保护单元启动保护核间通信对应的共享内存;
确定所述锁定状态被目标核解锁,向所述目标核发送中断指令,所述中断指令用于指示所述目标核占用所述硬件信号量处理任务。
2.根据权利要求1所述的核间通信方法,其特征在于,所述获取硬件信号量,包括:
基于硬件信号量寄存器的当前预设数值,获取所述硬件信号量寄存器的当前使用状态;
确定所述当前使用状态为空闲状态,获取硬件信号量。
3.根据权利要求2所述的核间通信方法,其特征在于,所述确定占用所述硬件信号量所对应的锁定状态,包括:
获取表征内核相同的内核状态信息,所述内核相同为锁定所述硬件信号量的核与访问所述硬件信号量的核相同;
基于所述内核状态信息,对所述硬件信号量寄存器进行上锁,并确定占用所述硬件信号量所对应的锁定状态。
4.根据权利要求2所述的核间通信方法,其特征在于,在所述获取所述硬件信号量寄存器的当前使用状态之后,所述方法还包括:
确定所述当前使用状态为上锁状态,指示除所述第一核之外的其它核将各自访问所述硬件信号量的请求以中断请求的形式存放至中断管理队列中。
5.根据权利要求1至4任一项所述的核间通信方法,其特征在于,在所述获取硬件信号量之后,所述方法还包括:
获取所述预设内存保护单元对应保护的预设内存区域的数量;
确定所述预设内存区域的数量与共享内存通信的子区域的数量满足预设条件,对所述预设内存区域进行配置。
6.根据权利要求5所述的核间通信方法,其特征在于,所述对所述预设内存区域进行配置,包括:
将所述预设内存区域划分为预设数量的预设内存子区域,并为不同的任务配置不同的所述预设内存子区域以及每个所述预设内存子区域的属性。
7.根据权利要求1至4任一项所述的核间通信方法,其特征在于,所述向所述目标核发送中断指令,包括:
指示中断管理队列向所述目标核发送所述中断指令;
所述中断管理队列还用于:存放除所述第一核之外的其它核访问所述硬件信号量时形成的不同中断请求,基于所述不同中断请求的进队顺序确定目标中断请求,并确定所述目标中断请求对应的核为所述目标核。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述核间通信方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一项所述核间通信方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述核间通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211193828.4A CN115509986B (zh) | 2022-09-28 | 2022-09-28 | 核间通信方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211193828.4A CN115509986B (zh) | 2022-09-28 | 2022-09-28 | 核间通信方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115509986A true CN115509986A (zh) | 2022-12-23 |
CN115509986B CN115509986B (zh) | 2024-05-07 |
Family
ID=84508385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211193828.4A Active CN115509986B (zh) | 2022-09-28 | 2022-09-28 | 核间通信方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115509986B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048824A (zh) * | 2023-03-30 | 2023-05-02 | 井芯微电子技术(天津)有限公司 | 一种多核处理器信号量系统 |
CN116244229A (zh) * | 2023-05-12 | 2023-06-09 | 苏州浪潮智能科技有限公司 | 硬件控制器的访问方法、装置、存储介质和电子设备 |
CN116257472A (zh) * | 2023-05-15 | 2023-06-13 | 上海励驰半导体有限公司 | 接口控制方法、装置、电子设备及存储介质 |
CN116302617A (zh) * | 2023-05-12 | 2023-06-23 | 苏州浪潮智能科技有限公司 | 共享内存的方法、通信方法、嵌入式系统以及电子设备 |
CN117215992A (zh) * | 2023-11-09 | 2023-12-12 | 芯原科技(上海)有限公司 | 异构内核处理器、异构处理器和电源管理方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136640A1 (en) * | 2004-12-17 | 2006-06-22 | Cheng-Ming Tuan | Apparatus and method for hardware semaphore |
CN101546275A (zh) * | 2008-03-26 | 2009-09-30 | 中国科学院微电子研究所 | 具有硬件信号量模块的多处理器系统及其实现方法 |
CN102855214A (zh) * | 2011-06-27 | 2013-01-02 | 上海华为技术有限公司 | 实现数据一致性的方法和一种多核系统 |
CN103092784A (zh) * | 2011-10-27 | 2013-05-08 | 飞思卡尔半导体公司 | 基于信号量保护共享系统资源的系统和方法 |
WO2016102055A2 (de) * | 2014-12-23 | 2016-06-30 | Liebherr-Aerospace Lindenberg Gmbh | Verfahren zum betrieb einer steuerungskomponente für ein luftfahrzeug sowie steuerungskomponente |
CN107329810A (zh) * | 2016-04-28 | 2017-11-07 | 飞思卡尔半导体公司 | 用于多核处理器的信号机 |
CN114756503A (zh) * | 2022-04-21 | 2022-07-15 | 杭州中天微系统有限公司 | 一种数据处理方法、片上系统及电子设备 |
-
2022
- 2022-09-28 CN CN202211193828.4A patent/CN115509986B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060136640A1 (en) * | 2004-12-17 | 2006-06-22 | Cheng-Ming Tuan | Apparatus and method for hardware semaphore |
CN101546275A (zh) * | 2008-03-26 | 2009-09-30 | 中国科学院微电子研究所 | 具有硬件信号量模块的多处理器系统及其实现方法 |
CN102855214A (zh) * | 2011-06-27 | 2013-01-02 | 上海华为技术有限公司 | 实现数据一致性的方法和一种多核系统 |
CN103092784A (zh) * | 2011-10-27 | 2013-05-08 | 飞思卡尔半导体公司 | 基于信号量保护共享系统资源的系统和方法 |
WO2016102055A2 (de) * | 2014-12-23 | 2016-06-30 | Liebherr-Aerospace Lindenberg Gmbh | Verfahren zum betrieb einer steuerungskomponente für ein luftfahrzeug sowie steuerungskomponente |
CN107329810A (zh) * | 2016-04-28 | 2017-11-07 | 飞思卡尔半导体公司 | 用于多核处理器的信号机 |
CN114756503A (zh) * | 2022-04-21 | 2022-07-15 | 杭州中天微系统有限公司 | 一种数据处理方法、片上系统及电子设备 |
Non-Patent Citations (1)
Title |
---|
刘德保 等: "硬件信号量在多核处理器核间通信中的应用", 《单片机与嵌入式系统应用》, no. 1, pages 9 - 11 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048824A (zh) * | 2023-03-30 | 2023-05-02 | 井芯微电子技术(天津)有限公司 | 一种多核处理器信号量系统 |
CN116048824B (zh) * | 2023-03-30 | 2023-08-18 | 井芯微电子技术(天津)有限公司 | 一种多核处理器信号量系统 |
CN116244229A (zh) * | 2023-05-12 | 2023-06-09 | 苏州浪潮智能科技有限公司 | 硬件控制器的访问方法、装置、存储介质和电子设备 |
CN116302617A (zh) * | 2023-05-12 | 2023-06-23 | 苏州浪潮智能科技有限公司 | 共享内存的方法、通信方法、嵌入式系统以及电子设备 |
CN116244229B (zh) * | 2023-05-12 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 硬件控制器的访问方法、装置、存储介质和电子设备 |
CN116302617B (zh) * | 2023-05-12 | 2023-08-04 | 苏州浪潮智能科技有限公司 | 共享内存的方法、通信方法、嵌入式系统以及电子设备 |
CN116257472A (zh) * | 2023-05-15 | 2023-06-13 | 上海励驰半导体有限公司 | 接口控制方法、装置、电子设备及存储介质 |
CN116257472B (zh) * | 2023-05-15 | 2023-08-22 | 上海励驰半导体有限公司 | 接口控制方法、装置、电子设备及存储介质 |
CN117215992A (zh) * | 2023-11-09 | 2023-12-12 | 芯原科技(上海)有限公司 | 异构内核处理器、异构处理器和电源管理方法 |
CN117215992B (zh) * | 2023-11-09 | 2024-01-30 | 芯原科技(上海)有限公司 | 异构内核处理器、异构处理器和电源管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115509986B (zh) | 2024-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115509986A (zh) | 核间通信方法、电子设备及存储介质 | |
US10891158B2 (en) | Task scheduling method and apparatus | |
CN110489213B (zh) | 一种任务处理方法及处理装置、计算机系统 | |
US8161481B2 (en) | Operating system providing a mutual exclusion mechanism | |
CN108319496B (zh) | 资源访问方法、业务服务器、分布式系统及存储介质 | |
EP2388699A1 (en) | Information processing device and information processing method | |
US8572626B2 (en) | Symmetric multi-processor system | |
US10002023B2 (en) | Method and apparatus for managing one or more tasks of a many-core system using one or more task descriptor entries | |
CN111274015A (zh) | 一种配置方法、装置和数据处理服务器 | |
WO2022068697A1 (zh) | 任务调度方法及装置 | |
CN107797848B (zh) | 进程调度方法、装置和主机设备 | |
US8918791B1 (en) | Method and system for queuing a request by a processor to access a shared resource and granting access in accordance with an embedded lock ID | |
US7103631B1 (en) | Symmetric multi-processor system | |
US20090178045A1 (en) | Scheduling Memory Usage Of A Workload | |
EP3379421B1 (en) | Method, apparatus, and chip for implementing mutually-exclusive operation of multiple threads | |
US6295602B1 (en) | Event-driven serialization of access to shared resources | |
WO2016202154A1 (zh) | 一种gpu资源的分配方法及系统 | |
CN111506438A (zh) | 一种共享资源访问方法及装置 | |
US20180204016A1 (en) | Mandatory access control method and apparatus, and physical host | |
CN113934516A (zh) | 一种锁管理方法、装置及设备 | |
US20130117754A1 (en) | Multi-core system and scheduling method | |
CN116450328A (zh) | 内存分配方法、装置、计算机设备和存储介质 | |
CN114721818A (zh) | 一种基于Kubernetes集群的GPU分时共享方法和系统 | |
CN109558241A (zh) | 一种获取自旋锁的方法及装置 | |
CN113626173A (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 |