CN110413210A - 用于处理数据的方法、设备和计算机程序产品 - Google Patents

用于处理数据的方法、设备和计算机程序产品 Download PDF

Info

Publication number
CN110413210A
CN110413210A CN201810401231.1A CN201810401231A CN110413210A CN 110413210 A CN110413210 A CN 110413210A CN 201810401231 A CN201810401231 A CN 201810401231A CN 110413210 A CN110413210 A CN 110413210A
Authority
CN
China
Prior art keywords
core
metadata
priority
queue
identifier
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
Application number
CN201810401231.1A
Other languages
English (en)
Other versions
CN110413210B (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.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
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 EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201810401231.1A priority Critical patent/CN110413210B/zh
Priority to US16/358,181 priority patent/US10922134B2/en
Publication of CN110413210A publication Critical patent/CN110413210A/zh
Application granted granted Critical
Publication of CN110413210B publication Critical patent/CN110413210B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0857Overlapped cache accessing, e.g. pipeline by multiple requestors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5018Thread allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Library & Information Science (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开实施例涉及用于处理数据的方法、设备和计算机程序产品。该方法包括基于分别与处理器的多个核关联的多个队列中存储的元数据,确定多个核的优先级,元数据涉及与相应核相关联的待处理数据块,并且每个队列中的元数据按照相应待处理数据块的到达时间排序。该方法还包括按照优先级的顺序,将多个核的核标识符存储在高速缓存中。通过使用上述方法,可以通过多个队列实现元数据的快速插入,并且基于对核的排序提高了确定要处理的数据块的效率。

Description

用于处理数据的方法、设备和计算机程序产品
技术领域
本公开的实施例总体涉及数据处理,更具体地,涉及在多核系统中处理数据的方法、设备和计算机程序产品。
背景技术
在处理器处理数据时,通常采用单个先进先出(FIFO)列表来对要处理的数据进行排序。因此,接收到的数据均是依据时间顺序被插入到FIFO列表中,实现了数据的先进先出处理,即先到的任务被优先处理。然而,随着处理器加工技术的提高,现在处理器一般包括多个核。在通过多个核来实现对单个FIFO队列的数据插入时,为了保证FIFO队列数据的安全性,可能会在某个核在向FIFO列表插入数据时锁定某些资源来阻止其它核操作。这导致各个核之间可能会产生竞争有限的资源的问题,从而降低了插入数据的效率。
随着多核技术的发展,为了减少仅有一个FIFO队列时产生的问题,每个核通常被设置一个相应的FIFO列表来实现待处理数据的插入和处理。每个核使用自己的FIFO列表来管理由该核处理的数据,提高了并行的效率,然而由于在每个核具有执行其自身的FIFO队列的数据的线程,导致较多的线程用于处理数据,使得更多的处理器内部的硬件资源用于该处理,导致硬件资源利用率下降。
发明内容
本公开的实施例提供一种用于处理数据的方法、设备和计算机程序产品。
根据本公开的第一方面,提供了一种用于处理数据的方法。该方法包括基于分别与处理器的多个核关联的多个队列中存储的元数据,确定多个核的优先级,元数据涉及与相应核相关联的待处理数据块,并且每个队列中的元数据按照相应待处理数据块的到达时间排序。该方法还包括按照优先级的顺序,将多个核的核标识符存储在高速缓存中。
根据本公开的第二方面,提供了一种用于处理数据的电子设备。该电子设备包括处理器;存储器,存储有计算机程序指令,处理器运行存储器中的计算机程序指令控制电子设备执行动作,该动作包括基于分别与处理器的多个核关联的多个队列中存储的元数据,确定多个核的优先级,元数据涉及与相应核相关联的待处理数据块,并且每个队列中的元数据按照相应待处理数据块的到达时间排序。该动作还包括按照优先级的顺序,将多个核的核标识符存储在高速缓存中。
根据本公开的第三方面,提供了一种计算机程序产品,该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行本公开的第一方面中的方法的步骤。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1图示了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图;
图2图示了根据本公开的实施例的用于处理数据的方法200的流程图;
图3图示了根据本公开的实施例的用于确定核的优先级的方法300的流程图;
图4图示了根据本公开的实施例的用于处理数据的方法400的流程图;
图5图示了根据本公开的实施例的用于更新核的优先级的方法500的流程图;
图6A-图6D图示了根据本公开的实施例的用于更新核的优先级的一个示例的示意图600;
图7A-图7D图示了根据本公开的实施例的用于更新核的优先级的另一个示例的示意图700;
图8图示了适于用来实施本公开内容的实施例的示例设备800的示意性框图。
在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在多核处理器中采用一个FIFO队列来处理数据时,由于只有一个处理线程,则会使得在线程切换时产生较少的操作,但是会产生多个核竞争资源的问题,如一个核对队列进行操作时需要进行锁定操作以保护FIFO队列的安全性。在为多个核中的每个核建立一个FIFO队列并设置要应的处理数据的线程时,会加快数据插入到FIFO队列的速度,但是执行多个处理FIFO队列中的数据的线程时,会在线程切换时会导致过多的操作,从而降低了处理器的效率。
为了解决上述问题,本公开在对数据进行操作时,采用在每个核上设置插入线程来形成每个插入核的FIFO队列。通过设置针对每个核的FIFO队列,每个核的插入进程可直接将要处理的数据块的原数据插入队列,而不需要像单个FIFO队列一样需要进行竞争,这样提高了插入效率。同时,在处理数据块时,使用一个线程将从多个FIFO队列按序读出每个数据块的原数据来处理数据块,从而避免了在采用多个线程执行时的线程切换带来的不利影响。从而,本公开的实施例实现了任务的快速插入和类似于单FIFO队列的处理。
在图1中图示了根据本公开的实施例的设备和/或方法可以在其中被实施的示例环境100的示意图。在示例环境100中具有控制器102、核1040-1043、高速缓存106和存储器108。
核1040-1043中在执行数据处理时运行插入线程。在一个示例中,每个核上均运行有一个插入线程。插入线程将分配给它的待处理数据块的元数据插入存储器108中的与该线程所在核相对应的队列。
元数据中包括有时间信息。在一个示例中,将待处理数据块的到达时间设置为元数据中的时间信息。在另一个示例中,将元数据插入队列时的时间设置为元数据中的时间信息。在又一个示例中,插入线程接收到数据块的元数据的时间作为元数据的时间信息。在本公开中,上面核的数量仅是作为示例,而非对本公开的限制,可以根据需要可以设置任意数量的核。
高速缓存106存储在关于各个核的信息。高速缓存106中,核标识符基于与核相对应的优先级来进行存储。核的优先级是基于是指核的权重来确定的。核的权重是从与核相对应的FIFO列中的第一元数据获得的。备选地或附加地,所述权重是从元数据的时间信息获得的。
作为一个示例,在高速缓存106中,标识信息1200-1203包括核标识符及其权重信息,并且以堆结构的形式进行存储。备选地或附加地,该堆结构是二进制堆结构。
存储器108用于存储与各个核相对应的FIFO队列1100-1103。针对不同核的FIFO队列是依据时间顺序进行存储的。一个FIFO队列中的元数据依据先进行先出的原则被处理。元数据112-118为来自相应核的插入到FIFO队列中的元数据。
控制器102,用于选择与具有最高优先级的核标识符对应的元数据,然后将与该元数据相对应的数据块分配给核处理。在高速缓存106中建立核标识符的有序队列时,控制器从存储器108读取与分配元数据的核相对应的每个FIFO队列的第一元数据,从每个队列的第一元数据来确定每个核标识符的权重。然后,对每个核标识符依据其权重进行排序,然后将排序的核标识符存储在高速缓存106中以便于在执行数据块时从高速缓存106中直接确定需要处理哪个核标识符对应的元数据。
控制器102在从具有最高优先权的核标识符对应的队列读取第一元数据时,还会从该队列中获得第一元数据的下一元数据的权重。然而将该权重作为核标识符的权重重新存储到高速缓存106中。然后再对存储在高速缓存106中的标识符进行重新处理来确定核标识符的优先级。
上面图1描述了本公开的实施例的设备和/或方法实施的示例环境100。下面将结合图2描述根据本公开的实施例的用于处理数据的方法200。
在处理器接收到处理任务时,会将不同数据块的元数据分配到不同的核,然后每个核上的插入线程会将分配给其的元数据块插入与核相对应的FIFO队列中。每个具有插入线程的核具有一个对应的FIFO队列。
在框202处,基于分别与处理器的多个核关联的多个队列中存储的元数据,确定多个核的优先级。元数据涉及与相应核相关联的待处理数据块,并且每个队列中的元数据按照相应待处理数据块的到达时间排序。
在每个队列中存储的一个元数据对应于一个待处理的数据块。在元数据内包括处理该数据块所需的各种信息。在一个示例中,元数据中包括与元数据相对应的数据块的存储位置以及数据块的到达时间等。备选地或附加地,元数据中还包括元数据被插入队列的时间。
在与每个核相对应元数据的队列中,其中元数据在队列中是依据时间先后顺序排列的。为了能够确定多个队列中哪个队列具有最先到达的数据块,本公开实施例将队列中的第一元数据的权重作为核的权重,也即用作为核标的优先级。在一个示例中,元数据的权重与数据块到达的时间有关。在另一个示例中,元数据的权重与数据块的元数据被插入队列的时间有关。因此,通过确定多个核的优先级顺序便可以确定哪个队列上具有需要先被处理的数据块的元数据。而确定多个核的优先级在下面通过结合图3来描述。
在获取到多个核标识符及其对应的优先级后,对核标识符进行排序。在框204处,按照优先级的顺序,将多个核的核标识符存储在高速缓存106中。在一个示例中,可以采用二进制堆结构存储核标识符及其权重。备选地或附加地,存储在数组中。在另一个示例中,可以将将核标识符及其权重存储在队列中。
上面图2描述了用于处理数据的方法200的流程图,下面结合图3描述用于确定多个核的优先级的方法300的流程图。
为了能够确定与核相关的队列的哪个队列首部的元数据具有最高的权重,即可以被最早处理。在本公开中将队列首部的元数据权重设置为相应核的优先级。因此,通过核的优先级顺序便可以确定要处理的数据块的元数据。
在框302处,从多个核所关联的多个队列中,获取分别位于多个队列的队首的多个元数据。由于针对每个核的每个队列是依据时间先后顺序存储的,因此,每个队列首部的元数据是该队列中进入最早的元数据。
在框304处,从多个元数据确定所涉及的多个待处理数据块的到达时间。每个元数据对应于一个数据块,因此,可以在元数据中存储待处理数据块的到达时间。当获取到元数据时,便可以获得多个待处理数据块的到达时间。
在框306处,基于到达时间,确定多个核的优先级。获得了每个元数据的到达时间,便可以通过到达时间确定元数据的权重。然后将队列首部的元数据的权重作为与该队列相应的核的权重。然后基于该权重来确定该核的优先级。
通过仅利用队首部的元数据的时间信息来确定核的优先级,使得仅对与核的数目相对应的数量的数据进行比对或排序处理,就能确定最早进入的数据块,不需要对所有元数据的权重进行比对,减少了确定最早数据块的时间。
图3描述了确定多个核的优先级的过程,下面结合图4描述用排序后的优先级来处理数据块的方法。
在需要调度处理数据块时,在框402处,从高速缓存106确定具有最高优先级的核标识符。由于在高速缓存106中存储了依据标识符的优先级存储的核标识符。因此,控制器102可以从高速缓存106中直接读取具有最高优先级的核标识符。在一个示例中,核标识符及其优先级采用数组存储。由于数据位置固定,因此,则可以从数组的第一个位置,即一个固定位置,直接读取具有最高优先级的核标识符。在另一个示例中,该标识符及其优先级也可采用链表存储。
在框404处,从与核标识符对应的核所关联的队列中,获取位于队列的队首的元数据。在从高速缓存106中获得具有最高优先级的核标识符后,通过该核标识符来查找与该核标识符相对应的FIFO队列。在查找到相应的FIFO队列后,则从该FIFO队列获取队列首的元数据。该元数据即为需要处理的数据块的元数据。
在确定好元数据后,在框406处,调度位于队首的元数据所涉及的待处理数据块以便处理。由于元数据与是待处理数据块相对应的,因此,控制器102内的线程处理元数据时,会将与元数据相对应的数据块发送到相应的核以进行处理。
通过利用从高速缓存106来获取核标识符来确定待处理数据块的元数据,可以快速的定位具有最小权重的元数据。其不需要对各个队列队中的元数据进行比较计算而直接确定最小权重的元数据,提高了确定最小权重的元数据的时间,提高了处理数据块的效率。
上面图4描述了通过核标识符调度处理数据块的过程。下面将结合图5描述在采用了具有最高优先级的标识符获得元数据后如何更新多个核的优先级的过程。
在从与具有最高优先级的核标识符对应的队列获得待处理的数据块的元数据后,还需要确定在与核标识符对应的核所关联的队列中是否存在紧接在所述队首的元数据之后的下一元数据。由于与该核标识符相对应的数据块已被处理,所以需要重新确定该核的优先级。由于核的优先级是与FIFO队列中的队首的元数据相对应,因此,需要在处理队首的元数据后获取队首的元数据之后的下一个元数据的信息。
因此,在框502中,需要确定在与核标识符对应的核所关联的队列中是否存在紧接在所述队首的元数据之后的下一元数据。如果确定存在所述下一元数据,则在框504处,基于下一元数据更新所述多个核的优先级。
下面将结合图6A-图6D来描述在具有一下元数据时的多个核的优先级的更新过程。
图6中图示了根据本公开的实施例的用于更新核的优先级的一个示例的示意图600。其中,利用二进制堆结构存储核标识符,并且核的优先级与其权重相对应。在图6中以7个核作为示例,其只是用来说明本公开的技术方案,而非对本公开的限制。
如图6中(A)部分所示,在节点601中由于CPU3具有最小的权重,因此,基于CPU 3的标识符选择待处理的数据块的元数据。当与CPU 3相对应的队列中队首的元数据后还具有下一个元数据时,则将下一个元数据的权重作为核3的权重。如(B)部分所示,核3的权重设置为155,形成新节点608。因此,核3的权重会与其下面的两个子节点602和603中权重较小的一个节点602中核6的权重进行比较,由于核6的权重为133,因此,其小于核3的权重,因此,将具有新权重的值节点608和节点602互换。如(C)部分所示,核3的权重再与其相连的下一层的两个节点604和605进行比较,由于下面一层的两个节点中权重最小的是节点604的核2,其权重为186,大于节点608中的核3的权重,因此,节点608不再与604进行交换。此时,便完成了核标识符的优先级更新。具有最小权重的核6成为具有最高优先级的节点。下一次要处理的数据块与核6相对应,如(D)部分所示。
上面描述了存在下一元数据据时的更新优先级的处理,现在返回图5,继续描述下面的操作。当不存在下一元数据时,在框506处,将与核标识符对应的所述核的优先级设置为预设优先级。由于在该队列中不存在下一元数据,则表明该队列中没有要处理的数据块的元数据。因此,可以为核标识符设置一个预设的较大的权重值。将该预设的权重作为其预设优先级。该权重值可以设置的校大。备选地或附加地,将核标识符的权重设置为-1。
在框508处,基于预设优先级,更新多个核的优先级。该更新优先级的过程在下面将结合图7进一步进行详细描述。
图7描述了不具有一下元数据的多个核的优先级更新过程。与图6中所描述的一样,采用二进制堆结构存储数据,且核的优先级与核的权重相对应。在图7中以7个核作为示例,其只是用来说明本公开的技术方案,而非对本公开的限制。
如图7中(A)部分所示,由于节点701的CPU3具有最小的权重,因此,基于CPU 3的标识符确定要处理的数据块的元数据。当与CPU 3相对应的队列中队首的元数据之后不具有下一个元数据时,则将核3的权重设置为较大值。如(B)部分所示,核3的权重设置为-1,其表明核3的权重非常大。因此,具有新的权值的节点708中的权重会与其下面的两个子节点702和703的权重较小的一个节点703的核0进行比较,由于核0的权重为142,因此,其小于核3的权重,因此,将节点708与节点703互换。如(C)部分所示,节点708的权重再与其相连的下一层的两个节点706和707进行比较,由于下面一层的两个节点706和707中权重最小的是节点706中的核1的权重,其权重为171,大于核3的权重,因此,节点708再与节点706进行交换。由于核3下面不再具有节点。此时,便完成了核标识符的优先级的更新。具有最小权重的核0成为具有最高优先级的节点。下次所述处理的数据块的元数据则与核0相对应,如(D)部分所示。
通过利用堆结构对核的优先级进行排序,加快了核优先级的排序的速度。此外,通过将下一个元数据的权重设置为对应核的优先级,可以快速的更新核的优先级,使得在执行待处理数据块的同时确定了下次需要处理的元数据所在的队列,加快了数据处理的速度。
图8示出了可以用来实施本公开内容的实施例的示例设备800的示意性框图。例如,如图1所示的102、1040-1044的任一项可以由设备800来实施。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200、300、400和500,可由处理单元801执行。例如,在一些实施例中,200、300、400或500可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的方法200、300、400或500的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (15)

1.一种用于处理数据的方法,包括:
基于分别与处理器的多个核关联的多个队列中存储的元数据,确定所述多个核的优先级,所述元数据涉及与相应核相关联的待处理数据块,并且每个队列中的所述元数据按照相应待处理数据块的到达时间排序;以及
按照所述优先级的顺序,将所述多个核的核标识符存储在高速缓存中。
2.根据权利要求1所述的方法,其中确定所述多个核的优先级包括:
从所述多个核所关联的多个队列中,获取分别位于所述多个队列的队首的多个元数据;
从所述多个元数据确定所涉及的多个待处理数据块的到达时间;以及
基于所述到达时间,确定所述多个核的优先级。
3.根据权利要求1所述的方法,其中将所述多个核的核标识符存储在高速缓存中包括:
按照所述优先级的顺序,以数组或链表的形式将所述多个核的核标识符存储在高速缓存中。
4.根据权利要求1所述的方法,还包括:
从所述高速缓存确定具有最高优先级的核标识符;
从与所述核标识符对应的核所关联的队列中,获取位于所述队列的队首的元数据;以及
调度位于所述队首的所述元数据所涉及的待处理数据块以便处理。
5.根据权利要求4所述的方法,还包括:
确定在与所述核标识符对应的所述核所关联的队列中是否存在紧接在所述队首的元数据之后的下一元数据;
响应于确定存在所述下一元数据,基于所述下一元数据更新所述多个核的优先级。
6.根据权利要求5所述的方法,还包括:
响应于确定不存在所述下一元数据,则将与所述核标识符对应的所述核的优先级设置为预设优先级;以及
基于所述预设优先级,更新所述多个核的优先级。
7.根据权利要求5或6所述的方法,还包括:
利用堆结构对经更新的所述多个核的优先级进行排序;
基于经排序的所述优先级,将所述多个核的核标识符存储在所述高速缓存中。
8.一种用于处理数据的电子设备,包括:
处理器;
存储器,存储有计算机程序指令,处理器运行存储器中的所述计算机程序指令控制所述电子设备执行动作,所述动作包括:
基于分别与处理器的多个核关联的多个队列中存储的元数据,确定所述多个核的优先级,所述元数据涉及与相应核相关联的待处理数据块,并且每个队列中的所述元数据按照相应待处理数据块的到达时间排序;以及
按照所述优先级的顺序,将所述多个核的核标识符存储在高速缓存中。
9.根据权利要求8所述的电子设备,其中确定所述多个核的优先级包括:
从所述多个核所关联的多个队列中,获取分别位于所述多个队列的队首的多个元数据;
从所述多个元数据确定所涉及的多个待处理数据块的到达时间;以及
基于所述到达时间,确定所述多个核的优先级。
10.根据权利要求8所述的电子设备,其中将所述多个核的核标识符存储在高速缓存中包括:
按照所述优先级的顺序,以数组或链表的形式将所述多个核的核标识符存储在高速缓存中。
11.根据权利要求8所述的电子设备,还包括:
从所述高速缓存确定具有最高优先级的核标识符;
从与所述核标识符对应的核所关联的队列中,获取位于所述队列的队首的元数据;以及
调度位于所述队首的所述元数据所涉及的待处理数据块以便处理。
12.根据权利要求11所述的电子设备,还包括:
确定在与所述核标识符对应的所述核所关联的队列中是否存在紧接在所述队首的元数据之后的下一元数据;
响应于确定存在所述下一元数据,基于所述下一元数据更新所述多个核的优先级。
13.根据权利要求12所述的电子设备,还包括:
响应于确定不存在所述下一元数据,则将与所述核标识符对应的所述核的优先级设置为预设优先级;以及
基于所述预设优先级,更新所述多个核的优先级。
14.根据权利要求12或13所述的电子设备,还包括:
利用堆结构对经更新的所述多个核的优先级进行排序;
基于经排序的所述优先级,将所述多个核的核标识符存储在所述高速缓存中。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至7中任一项所述的方法的步骤。
CN201810401231.1A 2018-04-28 2018-04-28 用于处理数据的方法、设备和计算机程序产品 Active CN110413210B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810401231.1A CN110413210B (zh) 2018-04-28 2018-04-28 用于处理数据的方法、设备和计算机程序产品
US16/358,181 US10922134B2 (en) 2018-04-28 2019-03-19 Method, device and computer program product for processing data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810401231.1A CN110413210B (zh) 2018-04-28 2018-04-28 用于处理数据的方法、设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN110413210A true CN110413210A (zh) 2019-11-05
CN110413210B CN110413210B (zh) 2023-05-30

Family

ID=68292521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810401231.1A Active CN110413210B (zh) 2018-04-28 2018-04-28 用于处理数据的方法、设备和计算机程序产品

Country Status (2)

Country Link
US (1) US10922134B2 (zh)
CN (1) CN110413210B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113031927A (zh) * 2021-03-26 2021-06-25 苏州挚途科技有限公司 数据输入、输出方法、装置及系统
CN115938087A (zh) * 2022-10-31 2023-04-07 浙江静远电力实业有限公司 一种特高压变电站防洪防水监测预警系统

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377277B (zh) 2020-03-09 2024-08-16 伊姆西Ip控股有限责任公司 管理存储器的方法、设备和计算机程序产品
CN114089889B (zh) * 2021-02-09 2024-04-09 京东科技控股股份有限公司 模型训练方法、装置以及存储介质
CN117155874A (zh) * 2022-05-24 2023-12-01 华为技术有限公司 数据包发送方法、转发节点、发送端及存储介质

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038347A (en) * 1989-01-17 1991-08-06 U.S. Philips Corp. Method and system for transmitting buffered data packets on a communications network
US20090031318A1 (en) * 2007-07-24 2009-01-29 Microsoft Corporation Application compatibility in multi-core systems
US20090070774A1 (en) * 2007-09-12 2009-03-12 Shlomo Raikin Live lock free priority scheme for memory transactions in transactional memory
US20100322265A1 (en) * 2009-06-22 2010-12-23 Sandhya Gopinath Systems and methods for receive and transmission queue processing in a multi-core architecture
US20120159501A1 (en) * 2010-12-21 2012-06-21 Samsung Electronics Co., Ltd. Synchronization scheduling apparatus and method in real-time mult-core system
US20130290583A1 (en) * 2012-04-27 2013-10-31 David Dice System and Method for NUMA-Aware Locking Using Lock Cohorts
US20130346994A1 (en) * 2012-06-20 2013-12-26 Platform Computing Corporation Job distribution within a grid environment
CN104360902A (zh) * 2014-11-13 2015-02-18 武汉理工大学 一种基于滑动窗口的多优先级元数据任务调度方法
US20150150019A1 (en) * 2013-04-17 2015-05-28 Empire Technology Development Llc Scheduling computing tasks for multi-processor systems
US20150169363A1 (en) * 2013-12-18 2015-06-18 Qualcomm Incorporated Runtime Optimization of Multi-core System Designs for Increased Operating Life and Maximized Performance
US20150286597A1 (en) * 2013-09-30 2015-10-08 Empire Technology Development, Llc Data Transfer in a Multi-Core Processor
US20150347334A1 (en) * 2014-05-30 2015-12-03 International Business Machines Corporation Intercomponent data communication
CN105339939A (zh) * 2013-06-25 2016-02-17 国际商业机器公司 对在线热备份数据库的复制
US20170139745A1 (en) * 2015-11-18 2017-05-18 Sap Se Scaling priority queue for task scheduling
US20170199762A1 (en) * 2016-01-12 2017-07-13 International Business Machines Corporation Enhanced prioritization of tasks in real-time
CN107329982A (zh) * 2017-06-01 2017-11-07 华南理工大学 一种基于分布式列式存储的大数据并行计算方法及系统
US20180054485A1 (en) * 2014-02-21 2018-02-22 Coho Data, Inc. Methods, systems and devices for parallel network interface data structures with differential data storage and processing service capabilities
US10067796B1 (en) * 2009-09-21 2018-09-04 Mellanox Technologies Ltd. Managing shared resources in an operating system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471532B2 (en) * 2011-02-11 2016-10-18 Microsoft Technology Licensing, Llc Remote core operations in a multi-core computer
US9606843B2 (en) * 2013-12-18 2017-03-28 Qualcomm Incorporated Runtime optimization of multi-core system designs for increased operating life and maximized performance
WO2016183028A2 (en) * 2015-05-10 2016-11-17 Apl Software Inc. Methods and architecture for enhanced computer performance
US10592813B1 (en) 2016-11-29 2020-03-17 EMC IP Holding Company LLC Methods and apparatus for data operation pre-processing with probabilistic estimation of operation value
CN109725829B (zh) 2017-10-27 2021-11-05 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端QoS解决方案的系统和方法
US10503437B2 (en) 2018-04-30 2019-12-10 EMC IP Holding Company LLC Distributed service level management with performance resilience objectives
CN111124270B (zh) 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 缓存管理的方法、设备和计算机程序产品

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038347A (en) * 1989-01-17 1991-08-06 U.S. Philips Corp. Method and system for transmitting buffered data packets on a communications network
US20090031318A1 (en) * 2007-07-24 2009-01-29 Microsoft Corporation Application compatibility in multi-core systems
US20090070774A1 (en) * 2007-09-12 2009-03-12 Shlomo Raikin Live lock free priority scheme for memory transactions in transactional memory
US20100322265A1 (en) * 2009-06-22 2010-12-23 Sandhya Gopinath Systems and methods for receive and transmission queue processing in a multi-core architecture
US10067796B1 (en) * 2009-09-21 2018-09-04 Mellanox Technologies Ltd. Managing shared resources in an operating system
US20120159501A1 (en) * 2010-12-21 2012-06-21 Samsung Electronics Co., Ltd. Synchronization scheduling apparatus and method in real-time mult-core system
US20130290583A1 (en) * 2012-04-27 2013-10-31 David Dice System and Method for NUMA-Aware Locking Using Lock Cohorts
US20130346994A1 (en) * 2012-06-20 2013-12-26 Platform Computing Corporation Job distribution within a grid environment
US20150150019A1 (en) * 2013-04-17 2015-05-28 Empire Technology Development Llc Scheduling computing tasks for multi-processor systems
CN105339939A (zh) * 2013-06-25 2016-02-17 国际商业机器公司 对在线热备份数据库的复制
US20150286597A1 (en) * 2013-09-30 2015-10-08 Empire Technology Development, Llc Data Transfer in a Multi-Core Processor
US20150169363A1 (en) * 2013-12-18 2015-06-18 Qualcomm Incorporated Runtime Optimization of Multi-core System Designs for Increased Operating Life and Maximized Performance
US20180054485A1 (en) * 2014-02-21 2018-02-22 Coho Data, Inc. Methods, systems and devices for parallel network interface data structures with differential data storage and processing service capabilities
US20150347334A1 (en) * 2014-05-30 2015-12-03 International Business Machines Corporation Intercomponent data communication
CN104360902A (zh) * 2014-11-13 2015-02-18 武汉理工大学 一种基于滑动窗口的多优先级元数据任务调度方法
US20170139745A1 (en) * 2015-11-18 2017-05-18 Sap Se Scaling priority queue for task scheduling
US20170199762A1 (en) * 2016-01-12 2017-07-13 International Business Machines Corporation Enhanced prioritization of tasks in real-time
CN107329982A (zh) * 2017-06-01 2017-11-07 华南理工大学 一种基于分布式列式存储的大数据并行计算方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IMAD BENACER: "A Fast, Single-Instruction–Multiple-Data, Scalable Priority Queue", 《IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113031927A (zh) * 2021-03-26 2021-06-25 苏州挚途科技有限公司 数据输入、输出方法、装置及系统
CN115938087A (zh) * 2022-10-31 2023-04-07 浙江静远电力实业有限公司 一种特高压变电站防洪防水监测预警系统

Also Published As

Publication number Publication date
US20190332426A1 (en) 2019-10-31
US10922134B2 (en) 2021-02-16
CN110413210B (zh) 2023-05-30

Similar Documents

Publication Publication Date Title
CN110413210A (zh) 用于处理数据的方法、设备和计算机程序产品
US10613888B1 (en) Custom placement policies for virtual machines
US9367369B2 (en) Automated merger of logically associated messages in a message queue
US11038779B2 (en) Self-service server change management
CN108984312A (zh) 数据读写的方法和设备
CN109491801B (zh) 微服务访问调度方法、装置、介质及电子设备
US20230110628A1 (en) QUANTUM COMPUTING SERVICE WITH QUALITY OF SERVICE (QoS) ENFORCEMENT VIA OUT-OF-BAND PRIORITIZATION OF QUANTUM TASKS
CN109213694A (zh) 用于缓存管理的方法和设备
US10372479B2 (en) Scheduling framework for tightly coupled jobs
US10671573B2 (en) Generating data tables
US9535949B2 (en) Dynamic rules to optimize common information model queries
CN110321202A (zh) 任务处理方法及装置
CN110058936A (zh) 用于确定专用处理资源的资源量的方法、设备和计算机程序产品
CN110389812A (zh) 用于管理虚拟机的方法、设备和计算机可读存储介质
CN110389905A (zh) 资源释放方法、资源分配方法、设备和计算机程序产品
CN103077070A (zh) 云计算管理系统以及云计算系统的管理方法
US20130086124A1 (en) Mapping Data Structures
US10788991B2 (en) Managing program access to data storage resources
CN108399046A (zh) 文件操作请求处理方法和装置
CN105592130B (zh) 一种服务部署方法、服务管理方法及装置
CN109344152A (zh) 数据处理方法、装置、电子设备及存储介质
CN110046025A (zh) 在并行分布式计算框架上使用用于短期jvm的轻量级jit编译
CN108958933A (zh) 任务执行器的配置参数更新方法、装置及设备
CN109729110A (zh) 管理专用处理资源的方法、设备以及计算机可读介质
CN107924502A (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