CN114780248A - 资源访问方法、装置、计算机设备及存储介质 - Google Patents
资源访问方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114780248A CN114780248A CN202210542244.7A CN202210542244A CN114780248A CN 114780248 A CN114780248 A CN 114780248A CN 202210542244 A CN202210542244 A CN 202210542244A CN 114780248 A CN114780248 A CN 114780248A
- Authority
- CN
- China
- Prior art keywords
- shared resource
- resource
- access
- processor
- state value
- 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.)
- Pending
Links
Images
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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
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
技术领域
本申请涉及计算机应用技术领域,具体地,涉及一种资源访问方法、装置、计算机设备和存储介质。
背景技术
现如今,随着芯片的可集成度越来越高,芯片的算力成为衡量一个SoC(System onChip,系统级芯片)系统最重要的指标之一,CPU(Central Processing Unit,中央处理器)也从传统的单核运行正式步入了多核时代,配合着多核的应用,SoC芯片内部的资源也越来越丰富。一般而言,在稍微复杂的应用场景中,多核之间如何高效地占用和释放硬件资源(例如,总线、内存、中断等)或者软件资源(例如,进程),便成为高性能SoC设计中必须要解决的问题。
发明内容
本申请实施例中提供了一种资源访问方法、装置、计算机设备和存储介质。
本申请实施例的第一个方面,提供了一种资源访问方法,所述方法包括:
接收第一设备针对共享资源的第一访问请求,确定所述共享资源的占用状态信息;
向所述第一设备发送所述占用状态信息,以使所述第一设备在所述占用状态信息指示所述共享资源未被占用时,对所述共享资源执行第一操作。
在本申请一个可选的实施例中,确定所述共享资源的占用状态信息,包括:
获取所述共享资源的当前状态值和初始状态值;
根据所述当前状态值和所述初始状态值,确定所述共享资源的占用状态信息。
在本申请一个可选的实施例中,所述方法还包括:
若所述占用状态信息指示所述共享资源被第二设备占用,则向所述第一设备发送第一队列信息,以使所述第一设备在所述第二设备结束访问所述共享资源后,对所述共享资源执行所述第一操作。
在本申请一个可选的实施例中,所述方法还包括:
若在所述第一设备对所述共享资源执行所述第一操作时,接收到第三设备针对所述共享资源的第三访问请求,则向所述第三设备发送第三队列信息,以使所述第三设备在所述第一设备结束访问所述共享资源后,对所述共享资源执行第三操作。
在本申请一个可选的实施例中,所述方法还包括:
接收所述第一设备针对所述共享资源的第一释放请求;
基于所述第一释放请求,对所述共享资源的占用状态信息进行更新。
在本申请一个可选的实施例中,对所述共享资源的占用状态信息进行更新,包括:
将所述读取状态值更新为所述初始状态值。
在本申请一个可选的实施例中,所述初始状态值的位宽、所述读取状态值的位宽与访问所述共享资源的设备的数量一致。
本申请实施例的第二个方面,提供了一种资源访问装置,该装置包括:第一确定模块和第一发送模块;
所述第一确定模块,用于接收第一设备针对共享资源的第一访问请求,确定所述共享资源的占用状态信息;
所述第一发送模块,用于向所述第一设备发送所述占用状态信息,以使所述第一设备在所述占用状态信息指示所述共享资源未被占用时,对所述共享资源执行第一操作。
本申请实施例的第三个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项方法的步骤。
本申请实施例的第四个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的方法的步骤。
本申请实施例提供的资源访问方法,通过接收第一设备针对共享资源的第一访问请求,确定共享资源的占用状态信息;向第一设备发送占用状态信息,以使第一设备在占用状态信息指示共享资源未被占用时,对共享资源执行第一操作。如此,通过硬件的方式接收设备的访问请求,确定出共享资源的占用状态,只有在共享资源未被占用时,才允许设备访问共享资源,进而可以实现设备对共享资源的独占访问,克服了现有技术只能通过软件介入的方式来解决共享资源占用冲突的问题,提高了共享资源访问的效率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例提供资源访问方法中处理器核执行原子操作指令的原理示意图;
图2为本申请一个实施例提供的资源访问方法中处理器核通过原子操作指令实现资源访问的原理示意图;
图3为本申请一个实施例提供的资源访问方法的流程示意图;
图4为本申请一个实施例提供的资源访问方法的工作原理示意图;
图5为本申请一个实施例提供的资源访问方法的另一工作原理示意图;
图6为本申请一个实施例提供的资源访问装置的结构示意图;
图7为本申请一个实施例提供的原子操作控制电路以及应用环境示意图;
图8为本申请一个实施例提供的原子操作控制电路示意图;
图9为本申请一个实施例提供的原子操作控制电路局部示意图;
图10为本申请一个实施例提供的计算机设备结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前在稍微复杂的SoC应用场景中,多处理器核之间如何高效地占用和释放共享资源,成为高性能SoC设计中必须要解决的问题。
SoC通常称为系统级芯片,也可称为片上系统,意指该芯片是一个有专用目标的集成电路,包含完整的系统和嵌入软件。同时SoC又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
这里,以SoC中常见的SMP(Symmetrical Multi-Processing,对称多处理)系统为例,由于SMP系统存在多处理器核同时对共享资源的占用与释放的情况,那么就要确定占用的优先级,即当一个处理器核在对内存的某段地址空间中的数据执行某一操作时,其它处理器核必须停止对该地址空间中的数据的操作,这样才能避免数据竞争问题。
由于在load update store(读改写)过程中可能出现的中断、抢占等问题,可以采用在每个处理器核的指令集里增加类似LDREX(独占加载)/STREX(独占存储)这样的原子操作指令来实现独占访问,如图1所示。图1是处理器核执行原子操作指令的原理示意图,其中,处理器核通过LDREX指令,可以将想要访问的共享资源的某段地址空间中的原始数据读出来,并标记该段地址空间(物理地址)的独占访问状态,此时读取访问结束。而处理器核想要对该段地址空间中的数据进行修改时,则可以通过STREX指令。在更新该段地址空间对应的数据时,STREX指令会检查该段地址空间是否已经被标记为独占访问状态,并以该地址空间是否被标记为独占访问状态来决定是否更新内存中的值。如此,便可以实现处理器核对共享资源的独占访问,避免了数据竞争的问题。下面对处理器核执行原子操作指令的过程进行拆解说明:
指令A:LDREX Rx,[Ry];
这里,指令A表示读取Ry寄存器指向的地址空间中存储的数据值,将该数据值保存到Rx寄存器(类似于缓存)中,同时将Ry寄存器指向的地址空间的状态标记为ExclusiveAccess State(独占访问状态)。如果执行LDREX指令的时候发现该地址空间已经被标记为独占访问状态了,则将Rx寄存器的值设置成1,表示缓存失败,也即LDREX指令执行失败。
指令B:STREX Rx,Ry,[Rz]
这里,在执行STREX指令的时候,如果发现该地址空间未被标记为独占访问状态了,则说明LDREX指令执行失败,处理器核无法通过STREX指令对Rz寄存器的数据进行更新,此时将Rx寄存器的值设置成1,表示STREX指令执行失败。
这里,在执行指令B的时候,如果发现Ry寄存器指向的地址空间已经被标记为独占访问状态了,也就是说,LDREX指令执行成功,现在处理器核可以通过STREX指令对Rz寄存器的数据进行更新,则将Ry寄存器的值更新到Rz寄存器指向的地址空间中,并将Rx寄存器的值设置成0,表示STREX指令执行成功,此时,Rx寄存器可以看作是判断指令是否执行成功的状态寄存器。指令执行成功后,会将Ry寄存器的独占访问状态清除,同时将Rz寄存器指向的地址空间标记为Open Access State(开放访问状态)。
一旦STREX指令执行成功,其他寄存器,例如R1寄存器如果再想尝试使用STREX指令将Ry寄存器指向的地址空间中的值更新到R1寄存器指向的地址空间中,会发现Ry寄存器的独占访问状态已经被清空了,就不能再将Ry寄存器的值更新到R1寄存器,从而实现Rz寄存器对Ry寄存器访问的机制。
但如果在执行指令B的时候发现Ry寄存器指向的地址空间未被标记为独占访问状态了,则不会将Ry寄存器的值更新到Rz寄存器指向的地址空间中,将寄存器Rx的值设置成1,表示STREX指令执行失败。
再比如在一个多核SoC系统中,存在CPU0和CPU1两个处理器核,如图2所示,图2为本申请实施例中处理器核通过原子操作指令实现访问的原理示意图。如果此时CPU0想对片上内存的某段地址空间发起load或者store的操作,而且此时不想让别的核(CPU1)打扰,希望独占此地址空间,那么CPU0会针对这段地址空间发起原子load操作或者原子store操作。这种情况下,只有当CPU0的某次原子store操作执行结束之后,CPU1才能开始针对同样的地址空间执行load或者store操作,这样才能保证内存中数据的一致性,这与cache(缓存)一致性的含义类似。这是基于处理器核所支持的指令集存在独占加载和独占存储这样的原子指令的情况,但如果某个处理器核所支持的指令集不存在独占加载和独占存储这样的原子指令,那么这种情况下就没办法实现对共享资源的独占访问。
针对上述问题,本申请实施例中提供了一种资源访问方法,如图3所示,用以解决现有技术中存在的上述问题,该方法可以包括以下步骤:
S301、接收第一设备针对共享资源的第一访问请求,确定共享资源的占用状态信息;
S302、向第一设备发送占用状态信息,以使第一设备在占用状态信息指示共享资源未被占用时,对共享资源执行第一操作。
具体地,结合附图4和附图5对本申请实施例进行说明。这里,第一设备可以是处理器核。原子操作模块在接收到第一设备针对共享资源的第一访问请求,会根据共享资源的地址空间,确定共享资源的占用状态信息。由于SMP系统中存在多核同时对共享资源的占用与释放的情况,那么就会出现同时想要占用某一资源的情况。假设在某个SMP系统中,存在两个处理器核(CPU0、CPU1),且CPU0和CPU1所支持的指令集不存在独占加载和独占存储这样的原子操作指令,那么当CPU0想发起针对内存的某个共享资源的操作时,CPU0就可以通过原子操作模块经过AXI总线,去读取共享资源的当前状态值。在当前状态值指示共享资源未被占用,意味着当前系统中没有处理器核去占用这部分共享资源,此时CPU0就可以访问该共享资源;同时,通过原子操作模块将共享资源的当前状态值配置为CPU0的ID号(假设CPU0的ID号是01)。
需要说明的是,原子操作模块可以是semaphore寄存器,semaphore通常称为信号量,可以用来控制同时访问特定资源的线程数量,通过协调各个线程,以保证合理的使用资源。这里,初始状态值的位宽与处理器核的数量一致,也就是说,semaphore寄存器的位宽与访问共享资源的设备的数量一致。
这里,判断共享资源是否被占用可以理解成为共享资源设置资源锁,通过资源锁对共享资源的使用情况进行管理,资源锁接收访问共享资源的请求,读取该资源锁中共享资源对应的指定位置的值,并根据指定位置的值,判定当前共享资源是否被占用,提供了一种可靠的共享资源管理机制,在不增加软件管理的前提下,实现了高效率高可靠性的共享资源管理,解决了缺乏适合的共享设备访问冲突处理方式的问题。
在本申请一个可选实施例中,该方法还可以包括:
S303、若占用状态信息指示共享资源被第二设备占用,则向第一设备发送第一队列信息,以使第一设备在第二设备结束访问共享资源时,对共享资源执行第一操作。
这里,假设在某个SMP系统中,存在两个处理器核(CPU0、CPU1),且CPU0和CPU1所支持的指令集不存在独占加载和独占存储这样的原子操作指令,那么当CPU0想发起针对内存的某个共享资源的操作时,CPU0就可以通过原子操作模块经过AXI总线,去读取共享资源的当前状态值。在当前状态值指示CPU1正在占用共享资源,还没有释放,所以CPU0必须等待。此时,原子操作模块会向CPU0发送第一队列信息,指示当前有几个CPU正在等待CPU1结束访问共享资源,以及CPU0排在第几个访问位置,当CPU1结束对共享资源的访问之后,其他CPU和CPU0才能按照第一队列信息的顺序逐个访问该共享资源。如此,可以保证每个设备可以按顺序访问共享资源,避免了访问遗漏和访问冲突的问题,实现了共享资源的高效访问。
在本申请一个可选实施例中,该方法还可以包括:
S304、若在第一设备对共享资源执行第一操作时,接收到第三设备针对共享资源的第三访问请求,则向第三设备发送第三队列信息,以使第三设备在第一设备结束访问共享资源时,对共享资源执行所述第三操作。
这里,假设在某个SMP系统中,存在两个处理器核(CPU0、CPU2),且CPU0和CPU2所支持的指令集不存在独占加载和独占存储这样的原子操作指令,那么当CPU0想发起针对内存的某个共享资源的操作时,CPU0就可以通过原子操作模块经过AXI总线,去读取共享资源的当前状态值。在当前状态值指示共享资源未被占用,意味着当前系统中没有处理器核去占用这部分共享资源,此时CPU0就可以访问该共享资源;同时,通过原子操作模块将共享资源的当前状态值配置为CPU0的ID号(假设CPU0的ID号是01)。而此时,CPU2向原子操作模块发出访问请求,原子操作模块读取到共享资源的当前状态值,当前状态值指示CPU0正在占用共享资源,还没有释放,所以CPU2必须等待。此时,原子操作模块会向CPU2发送第三队列信息,指示当前有几个CPU正在等待CPU0结束访问共享资源,以及CPU2排在第几个访问位置,当CPU0结束对共享资源的访问之后,其他CPU和CPU2才能按照第三队列信息的顺序逐个访问该共享资源。如此,可以保证每个设备可以按顺序访问共享资源,避免了访问遗漏和访问冲突的问题,实现了共享资源的高效访问。
在本申请一个可选实施例中,该方法还可以包括:
S305、接收第一设备针对共享资源的第一释放请求;
S306、基于第一释放请求,对共享资源的占用状态信息进行更新。
这里,同样以SoC芯片中,存在两个处理器核(CPU0、CPU1),且CPU0和CPU1所支持的指令集不存在独占加载和独占存储这样的原子指令,当CPU0通过原子操作模块完成对共享资源的访问后,会向原子操作模块发送第一释放请求,以告知原子操作模块CPU0已完成共享资源的访问;此时,原子操作模块会基于第一释放请求,对共享资源的占用状态进行更新。将当前状态值更新为初始状态值。在当前状态值指示共享资源未被占用时,意味着当前系统中没有处理器核去占用这部分共享资源,此时CPU1就可以直接访问该共享资源;同时,CPU1可以通过原子操作模块将共享资源的当前状态值配置为自己CPU1的ID号(假设CPU0的ID号是01),当状态寄存器的值被配置为01之后,假如CPU0或者其他CPU想发起针对该共享资源的读改写操作,这时CPU0或者其他CPU通过读取状态寄存器针对该共享资源的当前状态值,发现当前状态值指示CPU1正在占用这段共享资源,还没有释放,所以CPU0或者其他CPU必须等待。如此,可以保证每个设备可以按顺序访问共享资源,避免了访问遗漏和访问冲突的问题,实现了共享资源的高效访问。
在本申请一个可选实施例中,S305中对共享资源的占用状态信息进行更新,可以包括:将读取状态值更新为初始状态值。
这里,在某个CPU结束对共享资源的访问后,会对共享资源的占用状态信息进行更新,将读取状态值更新为初始状态值,以使其他CPU在获取共享资源的当前状态值时,获知当前状态值与初始状态值相同,即当前共享资源处于开发访问状态,任意一个CPU均可以访问共享资源。如此,在结束访问共享资源后,对共享资源的状态值进行复位,可以提供一种可靠的共享资源管理机制,在不增加软件管理的前提下,实现了高效率高可靠性的共享资源管理,解决了缺乏适合的共享设备访问冲突处理方式的问题。
在本申请一个可选实施例中,所述初始状态值的位宽与访问所述共享资源的设备的数量一致。
这里,初始状态值的位宽与访问共享资源的设备的数量一致,即初始状态值的位宽设置为m位,初始状态值的0位对应设备0,初始状态值的1位对应设备1,以此类推,初始状态值的m-1位对应设备m-1。通过设置初始状态值的位,可以定位访问共享资源的是哪一个设备。例如,某个SoC芯片中,存在三个设备(CPU0、CPU1、CPU2),初始状态值的位宽和系统中处理器核的个数相同,也就是说,此时初始状态值的位宽为3位,且复位值为全1,也就是说,只有在初始状态值针对某个共享资源的当前状态值为111时,才表明该共享资源处于开发访问状态,任意一个设备都可以访问该共享资源。如果初始状态值针对某个共享资源的当前状态值为不是111时,那么想改写的话只能先将初始状态值针对某个共享资源的当前状态值改写为全1,然后才能被改写。
需要说明的是,这里定义初始状态值的位宽与访问共享资源的处理器核的数量一致。并且处理器核的编号与初始状态值的位数一致,即假设初始状态值的位宽为m位,初始状态值的0位对应处理器核0,初始状态值的1位对应处理器核1,以此类推,初始状态值的m-1位对应处理器核m-1。通过设置初始状态值的位,可以实现共享资源与某一个处理器核绑定。
还需要说明的是,这里预设初始状态值为全1,即所有位数的数值均为1时,指示共享资源处于开放访问状态,所有处理器核均可以对共享资源进行访问。但当某个处理器核访问共享资源时,则更新该处理器核对应位数上的数值为0。例如,CPU0访问共享资源时,且处理器核的总数为3,那么CPU0在访问共享资源时,会将读取状态值更新为110,表示CPU0正在访问共享资源。
那么当读取状态值为10之后,指示处理器核的总数为2,且共享资源正被CPU0访问,假如CPU1想发起针对该共享资源的读改写操作,发现当前状态值指示共享资源正被CPU0访问,就得知当前CPU0正在占用这段共享资源,还没有释放,所以CPU1必须等待。如此,可以在处理器核所支持的指令集不存在独占加载和独占存储这样的原子操作指令的情况下,实现对资源的访问。
还需要说明的是,semaphore寄存器位宽需要和访问共享资源的设备的数量一致。比如系统中有四个设备,按照逻辑来看,设备的ID可以分别为:0、1、2、3。因为3的二进制是11,所以如果当设备3去把自己的ID写到semaphore寄存器时,因为设备3写的是11,所以此时即使有其它设备(比如设备1)正在占用某个共享资源,设备3还是能写入(因为它写的是11),所以它就打断了设备1的原子操作,这就导致不同的设备同时访问共享资源。此后,当设备3写入了11之后,设备3开始进行某项原子操作,此时semaphore寄存器的值是11,当有其它设备读到semaphore寄存器是11时,误认为没有任何设备在进行原子操作,从而又发起了针对semaphore寄存器的改写,打断了设备3此时的原子操作,这同样导致不同的设备同时访问共享资源。所以基于这两个原因,semaphore寄存器位宽需要和访问共享资源的设备的数量一致,semaphore寄存器的不同位,代表了不同的设备ID。
本申请实施例提供的资源访问方法,通过接收第一设备针对共享资源的第一访问请求,确定共享资源的占用状态信息;向第一设备发送占用状态信息,以使第一设备在占用状态信息指示共享资源未被占用时,对共享资源执行第一操作。如此,通过硬件的方式接收设备的访问请求,确定出共享资源的占用状态,只有在共享资源未被占用时,才允许设备访问共享资源,进而可以实现设备对共享资源的独占访问,克服了现有技术只能通过软件介入的方式来解决共享资源占用冲突的问题,提高了共享资源访问的效率。同时使用这种机制,还可以在SoC芯片中增加了一种安全的操作方式,当某个处理器核想要占用系统中的某些IP(Intellectual Property,知识产权)资源,比如UART、I2C、GPIO、SPI和DDR等等,此时也可以采用原子操作模块来保持系统的原子操作性能,这种场景下,现有的处理器核即使内部支持原子指令操作,也没办法解决这种对某个IP资源的独占性,只能通过软件去介入解决。
请参见图6,本申请一个实施例提供了一种资源访问装置,该装置60包括:第一确定模块601和第一发送模块602其中,
所述第一确定模块601,用于接收第一设备针对共享资源的第一访问请求,确定所述共享资源的占用状态信息;
所述第一发送模块602,用于向所述第一设备发送所述占用状态信息,以使所述第一设备在所述占用状态信息指示所述共享资源未被占用时,对所述共享资源执行第一操作。
在本申请一个可选实施例中,所述确定模块601可以包括:获取子模块6011和确定子模块6012;其中,
所述获取子模块6011,用于获取所述共享资源的当前状态值和初始状态值;
所述确定子模块6012,用于根据所述当前状态值和所述初始状态值,确定所述共享资源的占用状态信息。
在本申请一个可选实施例中,该装置60还可以包括:第二发送模块603,用于若所述占用状态信息指示所述共享资源被第二设备占用,则向所述第一设备发送第一队列信息,以使所述第一设备在所述第二设备结束访问所述共享资源后,对所述共享资源执行所述第一操作。
在本申请一个可选实施例中,该装置60还可以包括:第三发送模块604,用于若在所述第一设备对所述共享资源执行所述第一操作时,接收到第三设备针对所述共享资源的第三访问请求,则向所述第三设备发送所述第三队列信息,以使所述第三设备在所述第一设备结束访问所述共享资源后,对所述共享资源执行所述第三操作。
在本申请一个可选实施例中,第一接收模块601,还用于接收所述第一设备针对所述共享资源的第一释放请求;基于所述第一释放请求,对所述共享资源的占用状态信息进行更新。
关于上述资源访问装置的具体限定可以参见上文中资源访问方法的限定,在此不再赘述。上述资源访问装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,上述资源访问方法和装置可以应用于原子操作控制电路10,如图7所示,该控制电路10可应用于多核系统20,该多核系统20可以包括多个处理器210,每个处理器210作为一个核共同构成该多核系统20,该多核系统20可以为Soc系统等其他任意系统,本实施例不作具体限定。在应用时,本申请实施例提供的原子操作控制电路10与该多核系统20中的各处理器210信号连接,用于控制各处理器210对硬件资源(例如IP资源、内存资源)或软件资源(例如进程)进行独占加载或独占写入,即执行针对目标资源的原子操作。需要解释的是,本申请实施例中的原子操作是指不会被线程调度机制打断的操作,这种操作一旦开始就一直运行到结束,中间不会有任何线程干扰。
如图8所示,该控制电路10还可以包括:控制模块100和原子操作模块200,其中:
该控制模块100分别与多个处理器210信号连接,该控制模块100用于接收各处理器210发送的针对目标资源的数据读写信号,例如第一处理器CPU1需要对I2C接口、UART接口、SPI接口三个IP资源中的目标资源I2C接口进行访问,例如数据读取或数据写入等,该第一处理器CPU1则生成针对该目标资源I2C接口的数据读写请求,即生成数据读写信号,并发送至控制模块100。该控制模块100还用于根据资源占用状态信号控制多个处理器210对目标资源进行原子操作,也就是启动对目标资源的独占机制对目标资源进行独占访问,而避免该多核系统20中的其他处理器例如CPU2与CPU3的干扰。需要解释的是,处理器210即为多核系统20中的各个核,该控制模块100即为在多核系统20中控制各处理器210对各资源进行访问,例如加载或写入等操作的中枢媒介。不同多核系统20中该控制模块100的存在形式不尽相同,例如在Soc系统中,该控制模块100为数据总线,在其他多核系统中以其他形式存在。
该原子操作模块200与控制模块100信号连接,该原子操作模块200用于根据控制模块100发送的数据读写信号生成针对目标资源的资源状态信号,并将资源状态信号发送至控制模块100。其中,资源状态信号用于表征目标资源当前是否被占用。该原子操作模块200可以基于寄存器、地址存储器、地址控制芯片等进行配置,本申请实施例不作具体限定,只需要可以实现确定目标资源当前是否被占用,以及生成对应的资源状态信号的功能即可。
以下对本申请实施例提供的原子操作控制电路10的工作原理进行简要说明:
当前的多核系统20包含多个处理器210,本申请实施例原子操作控制电路10包括控制模块100与原子操作模块200。在工作时,各处理器210向控制模块100发送针对目标资源的数据读写请求,即上述的数据读写信号。控制模块100在接收到该数据读写信号后触发原子操作模块200确定目标资源当前的资源状态,生成用于表征目标资源当前是否被占用的资源状态信号,并将该资源状态信号反馈至控制模块100。控制模块100基于该资源状态信号确定目标资源当前是否被占用,并基于确定的结果控制其他处理器210是否可以对目标资源进行访问,从而实现目标资源当前的加载或写入操作不被干扰。例如,第一处理器CPU1想要读取目标资源I2C,但是当前时刻目标资源I2C被第二处理器CPU2所占用,原子操作模块200则生成目标资源I2C被占用,或者目标资源I2C被第二处理器CPU2占用的资源状态信号并反馈给控制模块100,控制模块100基于得到的该资源状态信号禁止第一处理器CPU1对目标资源I2C的访问,以保持第二处理器CPU2对目标资源I2C的独占加载或独占写入,防止被CPU1所干扰,即执行针对目标资源I2C的原子操作。
本申请实施例提供的原子操作控制电路10通过设置有控制模块100与原子操作模块200,控制模块100在接收到该数据读写信号后触发原子操作模块200确定目标资源当前的资源状态,生成用于表征目标资源当前是否被占用的资源状态信号,并将该资源状态信号反馈至控制模块100。第一方面,控制模块100基于该资源状态信号确定目标资源当前是否被占用,并基于确定的结果控制其他处理器210是否可以对目标资源进行访问,实现目标资源当前的加载或写入操作不被干扰,即实现了对于目标资源的原子操作机制,从而解决了目前多核系统20中原子操作的可靠性较差的技术问题,达到了提高原子操作稳定性与可靠性的技术效果。第二方面,无论多核系统20中各处理器210中是否具有原子操作指令,基于本申请实施例中提供的原子操作控制电路10均可以实现针对各资源的原子操作,从而大大提高原子操作的适用性与多核系统20的稳定性与可靠性。
请一并参见图8,在本申请一个可选实施例中,该原子操作模块200包括:判断单元310和寄存器单元D0,其中:
该判断单元310的第一输入端与控制模块100的数据读写接口信号连接,该判断单元310的输出端与寄存器单元D0的开关端信号连接,该判断单元310用于根据控制模块100从数据读写接口发送的数据读写信号,以及寄存器单元D0内部生成的目标资源的资源状态信号确定目标资源当前的占用状态。该资源状态信号可以为电平信号,通过高电平和低电平只表征目标资源当前是否被占用,电路简单,目标资源占用状态确定效率高;该资源状态信号也可以为数字信号,通过具体的携带有信息的数字信号表征目标资源当前是否被占用,以及被占用的处理器210处理器标识,方便控制模块100以及其他处理器210知道目标资源当前具体被哪个处理器210所占用,当然,该资源状态信号的形式包括但不限于如上两种,本实施例不作任何限定,可根据实际情况具体设定。
该寄存器单元D0的开关端EN与判断单元310的输出端信号连接,寄存器单元D0的输入端D[2:0]与控制模块100的数据读写接口信号连接,寄存器单元D0的输出端Q[2:0]分别与判断单元310的第二输入端以及控制模块100的反馈接口信号连接。多核系统20中各硬件资源和软件资源的资源标识或者资源地址均存储于寄存器单元D0,寄存器单元D0根据当前资源标识或资源地址的更新状态确定各资源的占用状态,并生成用于表征目标资源当前是否被占用的资源状态信号,并将该资源状态信号反馈至控制模块100。
本申请实施例通过设置有判断单元310与寄存器单元D0,寄存器单元D0的输入端D[2:0]与控制模块100的数据读写接口信号连接,寄存器单元D0的输出端Q[2:0]分别与判断单元310的第二输入端与控制模块100的反馈接口信号连接。在工作时,寄存器单元D0将各硬件资源或软件资源的资源标识或者资源地址等状态进行实时更新,生成对应的资源占用信号并反馈至控制模块100,控制模块100便可以通过寄存器单元D0发送的资源状态信号确定得到需要访问的目标资源的当前占用状态,从而避免目标资源被其中一个处理器访问时被其他处理器的访问操作干扰,进一步提高针对目标资源原子操作的稳定性与可靠性。
请继续参见图9,在本申请一个可选实施例中,上述判断单元310包括:比较器组件211和门电路212。
该比较器组件211的第一输入端与控制模块100的数据读写接口信号连接,比较器组件211的第二输入端与寄存器单元D0的输出端Q[2:0]信号连接。该比较器组件211中预先存储有一个预设占空信号,在基于数据读写接口接收到数据读写信号后,比较器组件211将接收到的数据读写信号与该预设占空信号进行比对,若两者相匹配,则生成并输出一高电平信号“1”,若两者不匹配,则生成并输出一低电平信号“0”;对应的,若寄存器单元D0输出的资源状态信号与该预设占空信号相匹配,则输出一高电平信号“1”,若两者不相匹配,则生成并输出一低电平信号“0”。
该门电路212的输入端分别与比较器组件211的输出端以及控制模块100的数据读写接口信号连接,门电路212的输出端与寄存器单元D0的开关端EN信号连接。该门电路212用于根据输入的信号控制寄存器单元D0开关端EN的打开与关闭,从而控制控制模块100与其他处理器210对寄存器单元D0的访问。例如比较器组件211输出的两个信号均为高电平“1”,也就是目标资源处于占空状态,且有一个处理器210需要对目标资源进行访问,或者刚发起访问请求,但还并未正式访问。此时,门电路212对两个高电平“1”进行逻辑与处理,门电路212打开并输出一高电平“1”打开寄存器单元D0开关端EN,否则,只要比较器组件211输出的两个信号中有一个信号为低电平信号,门电路212输出的信号也为低电平“0”,无法打开该打开寄存器单元D0开关端EN,控制模块100也就无法对寄存器单元D0中的各资源的状态进行更新或者改写,也就是无法对生成的资源状态信号进行更新或者改写。
本申请实施例通过设置有比较器组件211和门电路212,比较器组件211基于内部的预先存储的预设占用信号分别与从控制模块100数据读写接口中接收到的数据读写信号,以及寄存器单元D0输出的资源状态信号进行比对,从而确定目标资源当前是否被占用,确定方法简单快捷,无需进行复杂的逻辑处理,从而大大提高原子操作的执行效率。
请一并参见图8与图9,在本申请一个可选实施例中,上述比较器组件211包括第一比较器U0和第二比较器U1:
该第一比较器U0的输入端B与控制模块100的数据读写接口信号连接,第一比较器U0的输出端Y与门电路212的第一输入端信号连接。第一比较器U0将控制模块100输出的数据读写信号与内部预先设置的预设占空信号(例如为3b'111),若该数据读写信号中的数据读取信号icb-wdata[2:0]也为3b'111,那么第一比较器U0的输出端Y输出为高电平“1”;若该数据读取信号icb-wdata[2:0]为非3b'111,例如为3b'101,那么第一比较器U0的输出端Y输出低电平“0”。
该第二比较器U1的输入端Y与寄存器单元D0的输出端Q[2:0]信号连接,第二比较器U1的输出端Y与门电路212的第二输入端信号连接。例如用高电平“1”表征目标资源被某一个处理器210占用,“0”代表未被占用。若该多核系统20中包含有三个处理器:CPU1、CPU2与CPU3,寄存器单元D0中目标资源未被任何一个处理器210访问或者占用,那么输出的资源状态信号为3b'111;寄存器单元D0中目标资源被第二个处理器CPU2占用,那么输出的资源状态信号为3b'101,若目标资源被第三个处理器CPU3占用,那么输出的资源状态信号为3b'110。
本申请实施例提供的原子操作控制电路10中比较器组件211包括第一比较器U0和第二比较器U1,第一比较器U0通过将控制模块100输入的数据读写信号与预设占空信号进行比对,以判断当前是否有处理器210需要对目标资源进行访问,第二比较器U1通过将寄存器单元D0输出的资源占用信号与预设占空信号进行比对,可以确定目标资源是否被占用,以及具体被哪个处理器210占用,各资源的占用状态的确定更为精准,进一步提高针对目标资源原子操作的可靠性。
在本申请一个可选实施例中,上述门电路212包括或门子电路B0和与门子电路A0:
该或门子电路B0的第一输入端与第一比较器U0的输出端Y信号连接,或门子电路B0的第二输入端与第二比较器U1的输出端Y信号连接。
若第一比较器U0输出的是高电平“1”,就意味着当前有个处理器210需要对目标资源进行访问,若第二比较器U1输出的是高电平“1”,也就是寄存器单元D0输出的资源状态信号与预设占空信号相匹配,均为3b'111,即目标资源目前未被任何一个处理器210所占用。因此,只要寄存器单元D0中目标资源未被占用(第二比较器U1输出端Y输出的资源占用信号均为高电平“1”),或者有一个处理器210需要对目标资源进行访问(第一比较器U0输出端Y输出的为高电平“1”),那么该或门子电路B0便会打开,并输出一个高电平“1”;若寄存器单元D0中目标资源被占用(第二比较器U1输出端Y输出的资源占用信号不全为高电平“1”),且没有一个处理器210需要对目标资源进行访问(第一比较器U0输出端Y输出的为低电平“0”),那么该或门子电路B0便会输出一个低电平“0”。
该与门子电路A0的第一输入端与或门子电路B0的输出端信号连接,与门子电路A0的第二输入端与控制模块100的数据读写接口信号连接,与门子电路A0的输出端与寄存器单元D0的开关端信号连接。例如控制模块100输出的数据读写信号中具有数据写入信号,数据写入信号icb-semaphore-sel-ena为高电平“1”,表征当前有处理器210需要对目标资源进行访问,同时,或门子电路B0的输出端Y输出的为高电平“1”,那么与门子电路A0的第一输出端会生成一高电平“1”,该高电平打开寄存器单元D0开关端EN。控制器基于数据读取信号icb-wdata[2:0]将需要对目标资源进行访问的处理器210标识,例如处理器ID写入寄存器单元D0的输入端D[2:0]。寄存器单元D0在CLK高电平期间,Q端的状态跟随D端状态的改变而改变;CLK变成低电平以后,Q端将保持CLK变为低电平时刻D端的状态。因此,在下个时钟周期或者预设时钟周期之后,处理器ID将会被写入寄存器单元D0的输出端Q[2:0],寄存器单元D0即可根据该处理器210标识对资源占用信号进行更新。例如是第一处理器CPU1需要对目标资源进行访问,那么将其计数信号量修改为3b'011,以反馈给控制模块100,当前第一处理器CPU1正在对目标资源进行独占访问,以此类推,在此不再穷举。
本申请实施例通过在门电路212设置或门子电路B0和与门子电路A0,可以通过接收到的数据读写信号对寄存器单元D0中的资源占用信号进行更新或改写,以方便确定目标资源具体被哪个处理器210占用,原子操作执行效率与可靠性更高。
在本申请一个可选实施例中,上述原子操作控制电路10还包括地址选择器M0:
该地址选择器M0的输入端分别与第二比较器U1的输入端与寄存器单元D0的输出端信号连接,地址选择器M0的输出端与控制模块100的反馈接口信号连接,地址选择器M0用于根据资源状态信号确定目标资源当前被占用的目标处理器210的处理器210标识,并返回第一处理器210的处理器标识给控制模块100,以供控制模块100反馈给当前需要对目标资源进行访问的处理器210,目标资源目前被具体哪个处理器所占用。
在本申请一个可选实施例中,上述控制模块100至少包含数据总线,数据总线的分别与多个处理器210信号连接以及原子操作模块200信号连接,数据总线用于接收各处理器210发送的针对目标资源的数据读写信号,以及根据资源占用状态信号控制多个处理器210对目标资源进行原子操作。本申请实施例无需额外配置其他的中枢媒介,直接将数据总线作为多核系统20中各处理器210与原子操作模块200之间的中枢媒介,可靠性高,且大大降低了原子操作执行的成本。
在本申请一个可选实施例中,上述目标资源包括协议资源与内存资源中的至少一种。其中,协议资源即为IP资源,不同的协议接口,例如I2C接口、UART接口、SPI接口等,内存资源可以为物理内存或虚拟内存,本实施例不作具体限定,可根据实际情况具体选择。当然,本申请实施例提供的原子操作控制电路10可以对上述协议资源与内存资源的硬件资源对应的原子操作进行控制,也可以对进程等软件资源对应的原子操作进行控制,在此不作限定。
本申请另一个实施例提供了一种原子操作控制系统,包括:如上任一个实施例中记载的原子操作控制电路10,以及多个处理器210,多个处理器210均与原子控制电路中的控制模块100信号连接。
该原子操作控制电路10的有益效果已经在上述实施例中详细阐述,在此不再赘述。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种资源访问方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上资源访问方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上资源访问方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种资源访问方法,其特征在于,所述方法包括:
接收第一设备针对共享资源的第一访问请求,确定所述共享资源的占用状态信息;
向所述第一设备发送所述占用状态信息,以使所述第一设备在所述占用状态信息指示所述共享资源未被占用时,对所述共享资源执行第一操作。
2.根据权利要求1所述的方法,其特征在于,所述确定所述共享资源的占用状态信息,包括:
获取所述共享资源的当前状态值和初始状态值;
根据所述当前状态值和所述初始状态值,确定所述共享资源的占用状态信息。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若所述占用状态信息指示所述共享资源被第二设备占用,则向所述第一设备发送第一队列信息,以使所述第一设备在所述第二设备结束访问所述共享资源后,对所述共享资源执行所述第一操作。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若在所述第一设备对所述共享资源执行所述第一操作时,接收到第三设备针对所述共享资源的第三访问请求,则向所述第三设备发送第三队列信息,以使所述第三设备在所述第一设备结束访问所述共享资源后,对所述共享资源执行第三操作。
5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
接收所述第一设备针对所述共享资源的第一释放请求;
基于所述第一释放请求,对所述共享资源的占用状态信息进行更新。
6.根据权利要求5所述的方法,其特征在于,对所述共享资源的占用状态信息进行更新,包括:
将所述读取状态值更新为所述初始状态值。
7.根据权利要求6所述的方法,其特征在于,所述初始状态值的位宽、所述读取状态值的位宽与访问所述共享资源的设备的数量一致。
8.一种资源访问装置,其特征在于,所述装置包括:第一确定模块和第一发送模块;其中,
所述第一确定模块,用于接收第一设备针对共享资源的第一访问请求,确定所述共享资源的占用状态信息;
所述第一发送模块,用于向所述第一设备发送所述占用状态信息,以使所述第一设备在所述占用状态信息指示所述共享资源未被占用时,对所述共享资源执行第一操作。
9.一种计算机设备,包括:包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542244.7A CN114780248A (zh) | 2022-05-18 | 2022-05-18 | 资源访问方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210542244.7A CN114780248A (zh) | 2022-05-18 | 2022-05-18 | 资源访问方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114780248A true CN114780248A (zh) | 2022-07-22 |
Family
ID=82408315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210542244.7A Pending CN114780248A (zh) | 2022-05-18 | 2022-05-18 | 资源访问方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114780248A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116841691A (zh) * | 2023-06-15 | 2023-10-03 | 海光信息技术股份有限公司 | 加密硬件的配置方法、数据机密计算方法及相关设备 |
CN117271141A (zh) * | 2023-11-21 | 2023-12-22 | 新华三技术有限公司 | 资源更新系统、装置及网络设备 |
-
2022
- 2022-05-18 CN CN202210542244.7A patent/CN114780248A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116841691A (zh) * | 2023-06-15 | 2023-10-03 | 海光信息技术股份有限公司 | 加密硬件的配置方法、数据机密计算方法及相关设备 |
CN117271141A (zh) * | 2023-11-21 | 2023-12-22 | 新华三技术有限公司 | 资源更新系统、装置及网络设备 |
CN117271141B (zh) * | 2023-11-21 | 2024-02-23 | 新华三技术有限公司 | 资源更新系统、装置及网络设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4112490A (en) | Data transfer control apparatus and method | |
CN114780248A (zh) | 资源访问方法、装置、计算机设备及存储介质 | |
US4926319A (en) | Integrated circuit timer with multiple channels and dedicated service processor | |
US20070074214A1 (en) | Event processing method in a computer system | |
US4942522A (en) | Timer channel with multiple timer reference features | |
EP0431326A2 (en) | Inter-processor interrupts in an n-element multi-processor | |
US5042005A (en) | Timer channel with match recognition features | |
CN103329102A (zh) | 多处理器系统 | |
CN111666210A (zh) | 一种芯片验证方法及装置 | |
EP1760580A1 (en) | Processing operation information transfer control system and method | |
JP5999216B2 (ja) | データ処理装置 | |
JP7425685B2 (ja) | 電子制御装置 | |
CN114691594B (zh) | 一种基于非对称双核mcu设计的芯片架构及其实现方法 | |
US9946665B2 (en) | Fetch less instruction processing (FLIP) computer architecture for central processing units (CPU) | |
US5204957A (en) | Integrated circuit timer with multiple channels and dedicated service processor | |
KR960005395B1 (ko) | 최소 경합 프로세서 및 시스템 버스 시스템 | |
CN110221861B (zh) | 一种cpu寄存器体系结构及其中断处理方法 | |
JP2872259B2 (ja) | マルチプロセッサシステム | |
CN114780479A (zh) | 原子操作控制电路、系统和电子设备 | |
JP3807616B2 (ja) | マイクロコンピュータ | |
JP2001056793A (ja) | 情報処理装置 | |
JPH10111857A (ja) | マルチプロセッサ | |
JPS5834856B2 (ja) | キオクセイギヨソウチ | |
JPS5840619A (ja) | シ−ケンスコントロ−ラおよびその制御方法 | |
CN117311604A (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 |