CN114610391A - Data loading method and related device of RISC-V vector processor - Google Patents
Data loading method and related device of RISC-V vector processor Download PDFInfo
- Publication number
- CN114610391A CN114610391A CN202210300814.1A CN202210300814A CN114610391A CN 114610391 A CN114610391 A CN 114610391A CN 202210300814 A CN202210300814 A CN 202210300814A CN 114610391 A CN114610391 A CN 114610391A
- Authority
- CN
- China
- Prior art keywords
- memory
- data
- instruction
- risc
- vector processor
- 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 OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本申请公开了一种RISC‑V向量处理器的数据加载方法,包括:执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中;其中,所述数据预加载指令与运行于数据加载指令之前的普通指令并行运行;执行所述数据加载指令,将所述目标数据从所述第二存储器加载到RISC‑V向量处理器。该方法能够提高RISC‑V向量处理器的数据处理速度,提升RISC‑V向量处理器的性能。本申请还公开了一种RISC‑V向量处理器的数据加载装置、设备以及计算机可读存储介质,均具有上述技术效果。
The present application discloses a data loading method for a RISC-V vector processor, comprising: executing a data preloading instruction to load target data from a first memory into a second memory; wherein the data preloading instruction and running in Ordinary instructions before the data load instruction run in parallel; the data load instruction is executed to load the target data from the second memory to the RISC-V vector processor. The method can improve the data processing speed of the RISC-V vector processor and improve the performance of the RISC-V vector processor. The present application also discloses a data loading device, device and computer-readable storage medium for a RISC-V vector processor, all of which have the above technical effects.
Description
技术领域technical field
本申请涉及RISC-V向量处理器技术领域,特别涉及一种RISC-V向量处理器的数据加载方法;还涉及一种RISC-V向量处理器的数据加载装置、设备以及计算机可读存储介质。The present application relates to the technical field of RISC-V vector processors, in particular to a data loading method of a RISC-V vector processor; and also relates to a data loading apparatus, device and computer-readable storage medium of a RISC-V vector processor.
背景技术Background technique
不同于传统的Intel处理器与ARM处理器,RISC-V即第五代精简指令处理器是一种全新的指令集架构,且开源可以被自由使用,具有自主可控的优势。其中,RISC-V通过扩展Vector指令集,可以支持向量处理,从而可以作为一个向量处理器来使用,即通过Vector指令集扩展实现高效的计算,可以有效应对如机器学习、计算器视觉、多媒体应用等。Different from traditional Intel processors and ARM processors, RISC-V, the fifth-generation reduced instruction processor, is a brand-new instruction set architecture, and open source can be used freely, with the advantage of being autonomous and controllable. Among them, RISC-V can support vector processing by extending the Vector instruction set, so that it can be used as a vector processor, that is, efficient computing can be achieved through the Vector instruction set extension, which can effectively deal with applications such as machine learning, computer vision, and multimedia. Wait.
RISC-V作为向量处理器,需要涉及大量的数据存取操作,传统的数据缓存机制下,当需要加载数据时,RISC-V向量处理器首先要判断需要加载的数据是否在Cache中,如果不再或者不全在,则先将对应的数据从DDR搬移到Cache,然后再从Cache加载到RISC-V向量处理器。加载大量的数据从DDR到Cache,需要消耗大量的时钟周期,会极大的影响RISC-V向量处理器的数据处理速度,从而严重的影响RISC-V向量处理器的性能。As a vector processor, RISC-V needs to involve a large number of data access operations. Under the traditional data cache mechanism, when data needs to be loaded, the RISC-V vector processor must first determine whether the data to be loaded is in the Cache, if not. If it is not all there, first move the corresponding data from DDR to Cache, and then load it from Cache to RISC-V vector processor. Loading a large amount of data from DDR to Cache requires a lot of clock cycles, which will greatly affect the data processing speed of the RISC-V vector processor, thus seriously affecting the performance of the RISC-V vector processor.
因此,如何提高RISC-V向量处理器的数据处理速度,提升RISC-V向量处理器的性能已成为本领域技术人员亟待解决的技术问题。Therefore, how to improve the data processing speed of the RISC-V vector processor and improve the performance of the RISC-V vector processor has become an urgent technical problem to be solved by those skilled in the art.
发明内容SUMMARY OF THE INVENTION
本申请的目的是提供一种RISC-V向量处理器的数据加载方法,能够提高RISC-V向量处理器的数据处理速度,提升RISC-V向量处理器的性能。本申请的另一个目的是提供一种RISC-V向量处理器的数据加载装置、设备以及计算机可读存储介质,均具有上述技术效果。The purpose of this application is to provide a data loading method for a RISC-V vector processor, which can improve the data processing speed of the RISC-V vector processor and improve the performance of the RISC-V vector processor. Another object of the present application is to provide a data loading device, device and computer-readable storage medium for a RISC-V vector processor, all of which have the above technical effects.
为解决上述技术问题,本申请提供了一种RISC-V向量处理器的数据加载方法,包括:In order to solve the above technical problems, the present application provides a data loading method for a RISC-V vector processor, including:
执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中;其中,所述数据预加载指令与运行于数据加载指令之前的普通指令并行运行;Execute the data preloading instruction to load the target data from the first memory into the second memory; wherein, the data preloading instruction and the ordinary instruction running before the data loading instruction are run in parallel;
执行所述数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器。The data load instruction is executed to load the target data from the second memory to the RISC-V vector processor.
可选的,所述执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中包括:Optionally, the executing the data preloading instruction to load the target data from the first memory into the second memory includes:
根据所述数据预加载指令,查询所述第二存储器;querying the second memory according to the data preload instruction;
若所述第二存储器未命中所述目标数据,则将所述目标数据从所述第一存储器加载到所述第二存储器;If the second memory misses the target data, loading the target data from the first memory to the second memory;
若所述第二存储器命中所述目标数据的部分数据,则将所述第二存储器未命中的所述目标数据的部分数据从所述第一存储器加载到所述第二存储器中;If the second memory hits the partial data of the target data, loading the partial data of the target data that the second memory misses into the second memory from the first memory;
若所述第二存储器命中所述目标数据,则不将所述目标数据从所述第一存储器加载到所述第二存储器中。If the second memory hits the target data, the target data is not loaded from the first memory into the second memory.
可选的,所述将所述目标数据从所述第二存储器加载到RISC-V向量处理器包括:Optionally, the loading of the target data from the second memory to the RISC-V vector processor includes:
将所述目标数据从所述第二存储器加载到所述RISC-V向量处理器中所述数据加载指令指定的目的寄存器组中。Loading the target data from the second memory into the target register group specified by the data loading instruction in the RISC-V vector processor.
可选的,执行数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器包括:Optionally, executing a data load instruction to load the target data from the second memory to the RISC-V vector processor includes:
根据所述数据加载指令,查询所述第二存储器;query the second memory according to the data loading instruction;
若所述第二存储器未命中所述目标数据,则将所述目标数据从所述第一存储器加载到所述第二存储器后,将所述目标数据从所述第二存储器加载到RISC-V向量处理器;If the second memory misses the target data, after loading the target data from the first memory to the second memory, load the target data from the second memory to RISC-V vector processor;
若所述第二存储器命中所述目标数据的部分数据,则将所述第二存储器未命中的所述目标数据的部分数据从所述第一存储器加载到所述第二存储器中后,将所述目标数据从所述第二存储器加载到RISC-V向量处理器;If the second memory hits the partial data of the target data, after the partial data of the target data that the second memory misses is loaded from the first memory into the second memory, all the data are loaded into the second memory. The target data is loaded into the RISC-V vector processor from the second memory;
若所述第二存储器命中所述目标数据,则将所述目标数据从所述第二存储器加载到所述RISC-V向量处理器。If the second memory hits the target data, the target data is loaded from the second memory to the RISC-V vector processor.
可选的,所述执行数据预加载指令前还包括:Optionally, before executing the data preloading instruction, it further includes:
将所述数据预加载指令从第三存储器加载到所述RISC-V向量处理器。The data preload instruction is loaded from the third memory to the RISC-V vector processor.
可选的,所述执行所述数据加载指令前还包括:Optionally, before executing the data loading instruction, it further includes:
将所述数据加载指令从所述第三存储器加载到所述RISC-V向量处理器。The data load instruction is loaded from the third memory to the RISC-V vector processor.
为解决上述技术问题,本申请还提供了一种RISC-V向量处理器的数据加载装置,包括:In order to solve the above technical problems, the present application also provides a data loading device for a RISC-V vector processor, including:
第一指令执行模块,用于执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中;其中,所述数据预加载指令与运行于数据加载指令之前的普通指令并行运行;The first instruction execution module is used to execute the data preloading instruction, and load the target data from the first memory into the second memory; wherein, the data preloading instruction and the ordinary instruction running before the data loading instruction are run in parallel;
第二指令执行模块,用于执行所述数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器。The second instruction execution module is configured to execute the data loading instruction to load the target data from the second memory to the RISC-V vector processor.
可选的,所述第一指令执行模块,包括:Optionally, the first instruction execution module includes:
第一查询单元,用于根据所述数据预加载指令,查询所述第二存储器;a first query unit, configured to query the second memory according to the data preloading instruction;
第一加载单元,用于若所述第二存储器未命中所述目标数据,则将所述目标数据从所述第一存储器加载到所述第二存储器;若所述第二存储器命中所述目标数据的部分数据,则将所述第二存储器未命中的所述目标数据的部分数据从所述第一存储器加载到所述第二存储器中;若所述第二存储器命中所述目标数据,则不将所述目标数据从所述第一存储器加载到所述第二存储器中。a first loading unit, configured to load the target data from the first memory to the second memory if the second memory misses the target data; if the second memory hits the target If the second memory misses the partial data of the target data, load the partial data of the target data from the first memory into the second memory; if the second memory hits the target data, then The target data is not loaded from the first memory into the second memory.
为解决上述技术问题,本申请还提供了一种RISC-V向量处理器的数据加载设备,包括:In order to solve the above technical problems, the present application also provides a data loading device for a RISC-V vector processor, including:
存储器,用于存储计算机程序;memory for storing computer programs;
处理器,用于执行所述计算机程序时实现如上任一项所述的RISC-V向量处理器的数据加载方法的步骤。The processor is configured to implement the steps of the data loading method of the RISC-V vector processor described in any one of the above when executing the computer program.
为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述的RISC-V向量处理器的数据加载方法的步骤。In order to solve the above technical problems, the present application also provides a computer-readable storage medium, where a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the RISC described in any one of the above is implemented. -V Steps of the vector processor's data loading method.
本申请所提供的RISC-V向量处理器的数据加载方法,包括:执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中;其中,所述数据预加载指令与运行于数据加载指令之前的普通指令并行运行;执行所述数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器。The data loading method for a RISC-V vector processor provided by the present application includes: executing a data preloading instruction, and loading target data from a first memory into a second memory; wherein the data preloading instruction and running on the data Ordinary instructions before the load instruction are run in parallel; the data load instruction is executed to load the target data from the second memory to the RISC-V vector processor.
可见,本申请所提供的RISC-V向量处理器的数据加载方法,在传统数据加载指令的基础上,增设了数据预加载指令,且该数据预加载指令与运行于数据加载指令之前的普通指令并行运行。在执行数据加载指令之前,通过执行数据预加载指令,可以提前将数据从第一存储器加载到第二存储器中,并且不会影响数据加载指令之前的其他指令的运行。当执行数据加载指令时,可以减少甚至规避从第一存储器加载数据到第二存储器的时间,从而提高RISC-V向量处理器的数据处理速度,提升RISC-V向量处理器的性能。It can be seen that the data loading method of the RISC-V vector processor provided by this application adds a data preloading instruction on the basis of the traditional data loading instruction, and the data preloading instruction is the same as the ordinary instruction that runs before the data loading instruction. run in parallel. Before executing the data loading instruction, by executing the data preloading instruction, data can be loaded from the first memory into the second memory in advance without affecting the operation of other instructions before the data loading instruction. When the data loading instruction is executed, the time for loading data from the first memory to the second memory can be reduced or even avoided, thereby improving the data processing speed of the RISC-V vector processor and improving the performance of the RISC-V vector processor.
本申请所提供的RISC-V向量处理器的数据加载装置、设备以及计算机可读存储介质均具有上述技术效果。The data loading apparatus, device, and computer-readable storage medium of the RISC-V vector processor provided by the present application all have the above technical effects.
附图说明Description of drawings
为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to illustrate the technical solutions in the embodiments of the present application more clearly, the following briefly introduces the prior art and the drawings required in the embodiments. Obviously, the drawings in the following description are only some of the drawings in the present application. In the embodiments, for those of ordinary skill in the art, other drawings can also be obtained according to these drawings without any creative effort.
图1为本申请实施例所提供的一种RISC-V向量处理器的数据加载方法的流程示意图;1 is a schematic flowchart of a data loading method for a RISC-V vector processor provided by an embodiment of the present application;
图2为本申请实施例所提供的一种数据加载流程示意图;FIG. 2 is a schematic diagram of a data loading process provided by an embodiment of the present application;
图3为本申请实施例所提供的另一种数据加载流程示意图;3 is a schematic diagram of another data loading process provided by an embodiment of the present application;
图4为本申请实施例所提供的一种RISC-V向量处理器的数据加载装置的示意图;4 is a schematic diagram of a data loading device of a RISC-V vector processor provided by an embodiment of the present application;
图5为本申请实施例所提供的一种RISC-V向量处理器的数据加载设备的示意图。FIG. 5 is a schematic diagram of a data loading device of a RISC-V vector processor according to an embodiment of the present application.
具体实施方式Detailed ways
本申请的核心是提供一种RISC-V向量处理器的数据加载方法,能够提高RISC-V向量处理器的数据处理速度,提升RISC-V向量处理器的性能。本申请的另一个核心是提供一种RISC-V向量处理器的数据加载装置、设备以及计算机可读存储介质,均具有上述技术效果。The core of the present application is to provide a data loading method for a RISC-V vector processor, which can improve the data processing speed of the RISC-V vector processor and improve the performance of the RISC-V vector processor. Another core of the present application is to provide a data loading apparatus, device and computer-readable storage medium for a RISC-V vector processor, all of which have the above technical effects.
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。In order to make the purposes, technical solutions and advantages of the embodiments of the present application clearer, the technical solutions in the embodiments of the present application will be described clearly and completely below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments It is a part of the embodiments of the present application, but not all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.
请参考图1,图1为本申请实施例所提供的一种RISC-V向量处理器的数据加载方法的流程示意图,参考图1所示,该方法主要包括:Please refer to FIG. 1. FIG. 1 is a schematic flowchart of a data loading method for a RISC-V vector processor provided by an embodiment of the application. Referring to FIG. 1, the method mainly includes:
S101:执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中;其中,所述数据预加载指令与运行于数据加载指令之前的普通指令并行运行;S101: Execute a data preloading instruction to load target data from a first memory into a second memory; wherein, the data preloading instruction is run in parallel with a common instruction that runs before the data loading instruction;
本申请实施例基于RISC-V向量处理器开源且易修改的特性,通过修改编译器,增加了数据预加载指令。数据预加载指令在数据加载指令之前执行。数据预加载指令拥有与数据加载指令相同的load源地址、load长度以及load宽度。Load长度与load宽度决定了要加载的数据量。Load是指从存储器中读出数据。执行数据预加载指令只需将数据从第一存储器(DDR)加载到第二存储器(数据cache)中,因此,数据预加载指令不包含目的寄存器组。Based on the open-source and easy-to-modify features of the RISC-V vector processor, the embodiments of the present application add data preloading instructions by modifying the compiler. Data preload instructions are executed before data load instructions. The data preload instruction has the same load source address, load length, and load width as the data load instruction. Load length and load width determine the amount of data to be loaded. Load refers to reading data from memory. Executing the data preload instruction only needs to load the data from the first memory (DDR) into the second memory (data cache), therefore, the data preload instruction does not include the destination register set.
重要的是,本申请实施例中,数据预加载指令与运行于数据加载指令之前的除vector store指令外的普通指令可以并行运行。在数据预加载指令与数据加载指令之间的时间内,RISC-V向量处理器不会访问第二存储器(除vector store指令),运行于数据加载指令之前的普通指令在此期间不会从第二存储器中加载数据,而是从通用寄存器中读取数据。由此,数据预加载指令的执行过程不会影响普通的指令的执行,可以与普通的指令并行执行。Importantly, in this embodiment of the present application, the data preloading instruction and the common instructions other than the vector store instruction that are executed before the data loading instruction may be executed in parallel. During the time between the data preload instruction and the data load instruction, the RISC-V vector processor will not access the second memory (except for the vector store instruction), and the ordinary instructions running before the data load instruction will not be loaded from the second memory during this period. The second memory is loaded with data, but the data is read from general-purpose registers. Therefore, the execution process of the data preloading instruction does not affect the execution of the ordinary instruction, and can be executed in parallel with the ordinary instruction.
在一些实施例中,执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中可以包括:In some embodiments, executing a data preload instruction to load target data from the first memory into the second memory may include:
根据所述数据预加载指令,查询所述第二存储器;querying the second memory according to the data preload instruction;
若所述第二存储器未命中所述目标数据,则将所述目标数据从所述第一存储器加载到所述第二存储器;If the second memory misses the target data, loading the target data from the first memory to the second memory;
若所述第二存储器命中所述目标数据的部分数据,则将所述第二存储器未命中的所述目标数据的部分数据从所述第一存储器加载到所述第二存储器中;If the second memory hits the partial data of the target data, loading the partial data of the target data that the second memory misses into the second memory from the first memory;
若所述第二存储器命中所述目标数据,则不将所述目标数据从所述第一存储器加载到所述第二存储器中。If the second memory hits the target data, the target data is not loaded from the first memory into the second memory.
参考图2所示,图2中,IF全称为Instruction Fench,是指将指令从存储器中读取出来。在执行数据预加载指令之前,首先将数据预加载指令从第三存储器(指令cache)中加载到RISC-V向量处理器。ID全称为Instruction Decode,是指将从存储器中取出的指令进行翻译,经过译码之后得到指令需要的操作数寄存器索引,可以使用此索引,从通用寄存器组中将操作数读出。EX全称为Instruction Execute,是指对指令进行真正的运算的过程。例如,指令是一条加法指令,则对操作数进行加法操作,如果是乘法指令,则对操作数进行减法操作。Referring to FIG. 2, in FIG. 2, the full name of IF is Instruction Fench, which refers to reading the instruction from the memory. Before executing the data preload instruction, the data preload instruction is first loaded into the RISC-V vector processor from the third memory (instruction cache). The full name of ID is Instruction Decode, which refers to the translation of the instruction fetched from the memory. After decoding, the operand register index required by the instruction is obtained. This index can be used to read the operand from the general register group. The full name of EX is Instruction Execute, which refers to the process of performing real operations on instructions. For example, if the instruction is an addition instruction, the operand is added, and if it is a multiply instruction, the operand is subtracted.
MEM全称为Memory Access。存储器访问指令往往是指令集中最重要的指令类型之一,访存是指存储器访问指令将数据从存储器中读出,或者写入存储器的过程。MEM stands for Memory Access. Memory access instructions are often one of the most important types of instructions in the instruction set. Memory access refers to the process in which memory access instructions read data from or write to memory.
MMU是指RISC-V处理器内部的内存管理单元。MMU refers to the memory management unit inside the RISC-V processor.
TLB全称为Translation Lookaside Buffer。当MMU需要转换虚拟地址时,首先从TLB中查找,如果命中,则直接返回物理地址。如果未命中,则MMU查找页表。The full name of TLB is Translation Lookaside Buffer. When the MMU needs to translate the virtual address, it first looks up from the TLB, and if it hits, it returns the physical address directly. If there is a miss, the MMU looks in the page table.
WB全称为Write-Back,是指将指令的执行结果写回通用寄存器组。The full name of WB is Write-Back, which refers to writing the execution result of the instruction back to the general-purpose register group.
为了实现执行数据预加载指令将数据提前从第一存储器加载到第二存储器,针对ID模块即译码模块,需要对其添加对于数据预加载指令的识别和判断(具体可根据Opcode等指令字段来识别和判断),使ID模块能够识别出当前指令是数据预加载指令。针对MEM模块同样需要添加对数据预加载指令的识别和判断,MEM模块根据数据预加载指令中的Load源地址,Load长度,Load宽度,决定要Load的地址与数据量。In order to implement the data preloading instruction to load the data from the first memory to the second memory in advance, for the ID module, that is, the decoding module, it is necessary to add the identification and judgment of the data preloading instruction (specifically, it can be determined according to the instruction fields such as Opcode). identification and judgment), so that the ID module can identify that the current instruction is a data preload instruction. For the MEM module, it is also necessary to add the identification and judgment of the data preloading instruction. The MEM module determines the address and data amount to be loaded according to the Load source address, Load length, and Load width in the data preloading instruction.
MEM模块发出的地址是虚拟地址,需要经过MMU查询TLB,得到对应的物理地址。其中,如果TLB命中即TLB中存在对应的物理地址,则直接获得物理地址。如果TLB不命中,即TLB中不存在对应的物理地址,则进行页表查找,获得物理地址。The address sent by the MEM module is a virtual address, and it is necessary to query the TLB through the MMU to obtain the corresponding physical address. Wherein, if the TLB hits, that is, the corresponding physical address exists in the TLB, the physical address is directly obtained. If the TLB misses, that is, the corresponding physical address does not exist in the TLB, a page table lookup is performed to obtain the physical address.
在得到获得物理地址的基础上,进一步根据物理地址查询第二存储器。对于第二存储器不命中的数据,进一步从第一存储器中读取,并将读取到的数据返回到第二存储器。相反,如果第二存储器全部命中,则不需要进一步从第一存储器中读取。On the basis of obtaining the obtained physical address, the second memory is further inquired according to the physical address. For the data that is not hit by the second memory, it is further read from the first memory, and the read data is returned to the second memory. Conversely, if the second memory is all hit, no further reads from the first memory are required.
S102:执行所述数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器。S102: Execute the data load instruction to load the target data from the second memory to the RISC-V vector processor.
数据加载指令除具有load源地址、load长度以及load宽度外,还具有目的寄存器组。因此,在一些实施例中,将所述目标数据从所述第二存储器加载到RISC-V向量处理器包括:将所述目标数据从所述第二存储器加载到所述RISC-V向量处理器中所述数据加载指令指定的目的寄存器组中。In addition to the load source address, the load length and the load width, the data load instruction also has a destination register group. Thus, in some embodiments, loading the target data from the second memory to the RISC-V vector processor comprises: loading the target data from the second memory to the RISC-V vector processor in the destination register bank specified by the data load instruction described in .
另外,在一些实施例中,执行数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器包括:Additionally, in some embodiments, executing a data load instruction to load the target data from the second memory to the RISC-V vector processor includes:
根据所述数据加载指令,查询所述第二存储器;query the second memory according to the data loading instruction;
若所述第二存储器未命中所述目标数据,则将所述目标数据从所述第一存储器加载到所述第二存储器后,将所述目标数据从所述第二存储器加载到RISC-V向量处理器;If the second memory misses the target data, after loading the target data from the first memory to the second memory, load the target data from the second memory to RISC-V vector processor;
若所述第二存储器命中所述目标数据的部分数据,则将所述第二存储器未命中的所述目标数据的部分数据从所述第一存储器加载到所述第二存储器中后,将所述目标数据从所述第二存储器加载到RISC-V向量处理器;If the second memory hits the partial data of the target data, after the partial data of the target data that the second memory misses is loaded from the first memory into the second memory, all the data are loaded into the second memory. The target data is loaded into the RISC-V vector processor from the second memory;
若所述第二存储器命中所述目标数据,则将所述目标数据从所述第二存储器加载到所述RISC-V向量处理器。If the second memory hits the target data, the target data is loaded from the second memory to the RISC-V vector processor.
参考图3所示,图3中IF、ID、EX等缩写的含义,可参照上文中针对图2的解释,在此不做赘述。在执行数据预加载指令之前,首先将数据预加载指令从第三存储器即图3中所示I-cache中加载到RISC-V向量处理器。MEM模块根据数据加载指令中的Load源地址,Load长度,Load宽度,决定要Load的地址与数据量。MEM模块发出的地址是虚拟地址,需要经过MMU查询TLB,得到对应的物理地址。如果TLB命中即TLB中存在对应的物理地址,则直接获得物理地址。如果TLB不命中,即TLB中不存在对应的物理地址,则进行页表查找,获得物理地址。Referring to FIG. 3 , the meanings of abbreviations such as IF, ID, and EX in FIG. 3 can be referred to the explanations for FIG. 2 above, which will not be repeated here. Before executing the data preload instruction, the data preload instruction is first loaded into the RISC-V vector processor from the third memory, that is, the I-cache shown in FIG. 3 . The MEM module determines the address and data volume to be loaded according to the Load source address, Load length, and Load width in the data load instruction. The address sent by the MEM module is a virtual address, and it is necessary to query the TLB through the MMU to obtain the corresponding physical address. If the TLB hits, that is, the corresponding physical address exists in the TLB, the physical address is directly obtained. If the TLB misses, that is, the corresponding physical address does not exist in the TLB, a page table lookup is performed to obtain the physical address.
在得到获得物理地址的基础上,进一步根据物理地址查询第二存储器即图3中所示D-cache。如果第二存储器未命中所述目标数据,即第二存储器中不存在目标数据,则首先将所述目标数据从所述第一存储器加载到所述第二存储器后,再将所述目标数据从所述第二存储器加载到RISC-V向量处理器。如果所述第二存储器命中所述目标数据的部分数据,即第二存储器中存在目标数据的部分数据,则首先可将所述第二存储器中不存在的所述目标数据的部分数据从所述第一存储器加载到所述第二存储器中后,再将所述目标数据从所述第二存储器加载到RISC-V向量处理器。On the basis of obtaining the obtained physical address, the second memory, that is, the D-cache shown in FIG. 3 , is further queried according to the physical address. If the second memory misses the target data, that is, the target data does not exist in the second memory, the target data is first loaded from the first memory to the second memory, and then the target data is loaded from the second memory. The second memory is loaded into the RISC-V vector processor. If the second memory hits the partial data of the target data, that is, the partial data of the target data exists in the second memory, the partial data of the target data that does not exist in the second memory may first be removed from the second memory. After the first memory is loaded into the second memory, the target data is loaded into the RISC-V vector processor from the second memory.
如果所述第二存储器命中所述目标数据,即第二存储器中存在目标数据的所有数据,则直接将所述目标数据从所述第二存储器加载到所述RISC-V向量处理器。If the second memory hits the target data, that is, all data of the target data exists in the second memory, the target data is directly loaded from the second memory to the RISC-V vector processor.
理想情况下,执行数据预加载指令后,当执行数据加载指令,查询第二存储器时,目标数据的全部数据会被第二存储器命中,由此可以避免执行数据加载指令时从第一存储器加载数据到第二存储器的时间。即使存在数据预加载指令与数据加载指令间隔较短,目标数据无法全部加载到第二存储器的极端情况,由于已经从第一存储器向第二存储器加载了一部分的数据,因此也会在一定程度上减少执行数据加载指令时从第一存储器加载数据到第二存储器的时间。Ideally, after the data preload instruction is executed, when the data load instruction is executed and the second memory is queried, all the data of the target data will be hit by the second memory, which can avoid loading data from the first memory when the data load instruction is executed. time to the second memory. Even if there is a short interval between the data preloading instruction and the data loading instruction, the target data cannot be fully loaded into the second memory, since a part of the data has been loaded from the first memory to the second memory, it will be Reduce the time to load data from the first memory to the second memory when executing the data load instruction.
综上所述,本申请所提供的RISC-V向量处理器的数据加载方法,包括:执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中;其中,所述数据预加载指令与运行于数据加载指令之前的普通指令并行运行;执行所述数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器。可见,本申请所提供的RISC-V向量处理器的数据加载方法,在传统数据加载指令的基础上,增设了数据预加载指令,且该数据预加载指令与运行于数据加载指令之前的普通指令并行运行。在执行数据加载指令之前,通过执行数据预加载指令,可以提前将数据从第一存储器加载到第二存储器中,并且不会影响数据加载指令之前的其他指令的运行。当执行数据加载指令时,可以减少甚至规避从第一存储器加载数据到第二存储器的时间,从而提高RISC-V向量处理器的数据处理速度,提升RISC-V向量处理器的性能。To sum up, the data loading method of the RISC-V vector processor provided by this application includes: executing a data preloading instruction to load target data from the first memory into the second memory; wherein, the data preloading The instruction runs in parallel with the common instruction running before the data load instruction; the data load instruction is executed to load the target data from the second memory to the RISC-V vector processor. It can be seen that the data loading method of the RISC-V vector processor provided by this application adds a data preloading instruction on the basis of the traditional data loading instruction, and the data preloading instruction is the same as the ordinary instruction that runs before the data loading instruction. run in parallel. Before executing the data loading instruction, by executing the data preloading instruction, data can be loaded from the first memory into the second memory in advance without affecting the operation of other instructions before the data loading instruction. When the data loading instruction is executed, the time for loading data from the first memory to the second memory can be reduced or even avoided, thereby improving the data processing speed of the RISC-V vector processor and improving the performance of the RISC-V vector processor.
本申请还提供了一种RISC-V向量处理器的数据加载装置,下文描述的该装置可以与上文描述的方法相互对应参照。请参考图4,图4为本申请实施例所提供的一种RISC-V向量处理器的数据加载装置的示意图,结合图4所示,该装置包括:The present application also provides a data loading device for a RISC-V vector processor, and the device described below can be referred to in correspondence with the method described above. Please refer to FIG. 4. FIG. 4 is a schematic diagram of a data loading apparatus for a RISC-V vector processor provided by an embodiment of the application. In conjunction with FIG. 4, the apparatus includes:
第一指令执行模块10,用于执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中;其中,所述数据预加载指令与运行于数据加载指令之前的普通指令并行运行;The first
第二指令执行模块20,用于执行所述数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器。The second
在上述实施例的基础上,可选的,所述第一指令执行模块10包括:On the basis of the foregoing embodiment, optionally, the first
第一查询单元,用于根据所述数据预加载指令,查询所述第二存储器;a first query unit, configured to query the second memory according to the data preloading instruction;
第一加载单元,用于若所述第二存储器未命中所述目标数据,则将所述目标数据从所述第一存储器加载到所述第二存储器;若所述第二存储器命中所述目标数据的部分数据,则将所述第二存储器未命中的所述目标数据的部分数据从所述第一存储器加载到所述第二存储器中;若所述第二存储器命中所述目标数据,则不将所述目标数据从所述第一存储器加载到所述第二存储器中。a first loading unit, configured to load the target data from the first memory to the second memory if the second memory misses the target data; if the second memory hits the target If the second memory misses the partial data of the target data, load the partial data of the target data from the first memory into the second memory; if the second memory hits the target data, then The target data is not loaded from the first memory into the second memory.
在上述实施例的基础上,可选的,所述第二指令执行模块20用于将所述目标数据从所述第二存储器加载到所述RISC-V向量处理器中所述数据加载指令指定的目的寄存器组中。On the basis of the foregoing embodiment, optionally, the second
在上述实施例的基础上,可选的,所述第二指令执行模块20包括:On the basis of the foregoing embodiment, optionally, the second
第二查询单元,用于根据所述数据加载指令,查询所述第二存储器;a second query unit, configured to query the second memory according to the data loading instruction;
第二加载单元,用于若所述第二存储器未命中所述目标数据,则将所述目标数据从所述第一存储器加载到所述第二存储器后,将所述目标数据从所述第二存储器加载到RISC-V向量处理器;若所述第二存储器命中所述目标数据的部分数据,则将所述第二存储器未命中的所述目标数据的部分数据从所述第一存储器加载到所述第二存储器中后,将所述目标数据从所述第二存储器加载到RISC-V向量处理器;若所述第二存储器命中所述目标数据,则将所述目标数据从所述第二存储器加载到所述RISC-V向量处理器。A second loading unit, configured to load the target data from the first memory into the second memory if the second memory misses the target data, and then load the target data from the first memory into the second memory. The second memory is loaded into the RISC-V vector processor; if the second memory hits the partial data of the target data, the partial data of the target data that the second memory misses is loaded from the first memory After entering the second memory, load the target data from the second memory to the RISC-V vector processor; if the second memory hits the target data, load the target data from the second memory. The second memory is loaded into the RISC-V vector processor.
在上述实施例的基础上,可选的,还包括:On the basis of the above-mentioned embodiment, optional, also includes:
第一指令加载单元,用于将所述数据预加载指令从第三存储器加载到所述RISC-V向量处理器。A first instruction loading unit, configured to load the data preloading instruction from the third memory to the RISC-V vector processor.
在上述实施例的基础上,可选的,还包括:On the basis of the above-mentioned embodiment, optional, also includes:
第二指令加载单元,用于将所述数据加载指令从所述第三存储器加载到所述RISC-V向量处理器。A second instruction loading unit, configured to load the data loading instruction from the third memory to the RISC-V vector processor.
本申请所提供的RISC-V向量处理器的数据加载装置,在传统数据加载指令的基础上,增设了数据预加载指令,且该数据预加载指令与运行于数据加载指令之前的普通指令并行运行。在执行数据加载指令之前,通过执行数据预加载指令,可以提前将数据从第一存储器加载到第二存储器中,并且不会影响数据加载指令之前的其他指令的运行。当执行数据加载指令时,可以减少甚至规避从第一存储器加载数据到第二存储器的时间,从而提高RISC-V向量处理器的数据处理速度,提升RISC-V向量处理器的性能。The data loading device of the RISC-V vector processor provided by the present application adds a data preloading instruction on the basis of the traditional data loading instruction, and the data preloading instruction runs in parallel with the ordinary instruction running before the data loading instruction . Before executing the data loading instruction, by executing the data preloading instruction, data can be loaded from the first memory into the second memory in advance without affecting the operation of other instructions before the data loading instruction. When the data loading instruction is executed, the time for loading data from the first memory to the second memory can be reduced or even avoided, thereby improving the data processing speed of the RISC-V vector processor and improving the performance of the RISC-V vector processor.
本申请还提供了一种RISC-V向量处理器的数据加载设备,参考图5所示,该设备包括存储器1和处理器2。The present application also provides a data loading device for a RISC-V vector processor. Referring to FIG. 5 , the device includes a
存储器1,用于存储计算机程序;
处理器2,用于执行计算机程序实现如下的步骤:The
执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中;其中,所述数据预加载指令与运行于数据加载指令之前的普通指令并行运行;执行所述数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器。Execute the data preloading instruction to load the target data from the first memory into the second memory; wherein, the data preloading instruction is run in parallel with the ordinary instruction running before the data loading instruction; The target data is loaded into the RISC-V vector processor from the second memory.
对于本申请所提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。For the introduction of the equipment provided in the present application, please refer to the above method embodiments, which will not be repeated in this application.
本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下的步骤:The present application also provides a computer-readable storage medium, where a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the following steps can be implemented:
执行数据预加载指令,将目标数据从第一存储器加载到第二存储器中;其中,所述数据预加载指令与运行于数据加载指令之前的普通指令并行运行;执行所述数据加载指令,将所述目标数据从所述第二存储器加载到RISC-V向量处理器。Execute the data preloading instruction to load the target data from the first memory into the second memory; wherein, the data preloading instruction is run in parallel with the ordinary instruction running before the data loading instruction; The target data is loaded into the RISC-V vector processor from the second memory.
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。The computer-readable storage medium may include: a USB flash drive, a removable hard disk, a read-only memory (Read-Only Memory, ROM), a random access memory (Random Access Memory, RAM), a magnetic disk or an optical disk, etc., which can store program codes. medium.
对于本申请所提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。For the introduction of the computer-readable storage medium provided by the present application, please refer to the above method embodiments, which will not be repeated in the present application.
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备以及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。The various embodiments in the specification are described in a progressive manner, and each embodiment focuses on the differences from other embodiments, and the same and similar parts between the various embodiments can be referred to each other. For the apparatuses, devices, and computer-readable storage media disclosed in the embodiments, since they correspond to the methods disclosed in the embodiments, the descriptions are relatively simple, and reference may be made to the descriptions of the methods for related parts.
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。Professionals may further realize that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of the two, in order to clearly illustrate the possibilities of hardware and software. Interchangeability, the above description has generally described the components and steps of each example in terms of function. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Skilled artisans may implement the described functionality using different methods for each particular application, but such implementations should not be considered beyond the scope of this application.
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。The steps of a method or algorithm described in conjunction with the embodiments disclosed herein may be directly implemented in hardware, a software module executed by a processor, or a combination of the two. A software module can be placed in random access memory (RAM), internal memory, read only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disk, removable disk, CD-ROM, or any other in the technical field. in any other known form of storage medium.
以上对本申请所提供的RISC-V向量处理器的数据加载方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围。The data loading method, apparatus, device, and computer-readable storage medium of the RISC-V vector processor provided in this application have been described in detail above. Specific examples are used herein to illustrate the principles and implementations of the present application, and the descriptions of the above embodiments are only used to help understand the methods and core ideas of the present application. It should be pointed out that for those of ordinary skill in the art, without departing from the principles of the present application, several improvements and modifications can also be made to the present application, and these improvements and modifications also fall within the protection scope of the claims of the present application.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210300814.1A CN114610391A (en) | 2022-03-25 | 2022-03-25 | Data loading method and related device of RISC-V vector processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210300814.1A CN114610391A (en) | 2022-03-25 | 2022-03-25 | Data loading method and related device of RISC-V vector processor |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN114610391A true CN114610391A (en) | 2022-06-10 |
Family
ID=81866742
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210300814.1A Pending CN114610391A (en) | 2022-03-25 | 2022-03-25 | Data loading method and related device of RISC-V vector processor |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114610391A (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115659115A (en) * | 2022-11-01 | 2023-01-31 | 山东云海国创云计算装备产业创新中心有限公司 | A vector data pre-reading method, system, device and readable storage medium |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5778423A (en) * | 1990-06-29 | 1998-07-07 | Digital Equipment Corporation | Prefetch instruction for improving performance in reduced instruction set processor |
| JPH10187533A (en) * | 1996-10-18 | 1998-07-21 | Samsung Electron Co Ltd | Cache system, processor and method of operating processor |
| US20060224831A1 (en) * | 2005-04-04 | 2006-10-05 | Toshiba America Electronic Components | Systems and methods for loading data into the cache of one processor to improve performance of another processor in a multiprocessor system |
| WO2008113007A1 (en) * | 2007-03-14 | 2008-09-18 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
| CN111159062A (en) * | 2019-12-20 | 2020-05-15 | 海光信息技术有限公司 | Cache data scheduling method and device, CPU chip and server |
| CN112395000A (en) * | 2019-08-13 | 2021-02-23 | 杭州中天微系统有限公司 | Data preloading method and instruction processing device |
-
2022
- 2022-03-25 CN CN202210300814.1A patent/CN114610391A/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5778423A (en) * | 1990-06-29 | 1998-07-07 | Digital Equipment Corporation | Prefetch instruction for improving performance in reduced instruction set processor |
| JPH10187533A (en) * | 1996-10-18 | 1998-07-21 | Samsung Electron Co Ltd | Cache system, processor and method of operating processor |
| US20060224831A1 (en) * | 2005-04-04 | 2006-10-05 | Toshiba America Electronic Components | Systems and methods for loading data into the cache of one processor to improve performance of another processor in a multiprocessor system |
| WO2008113007A1 (en) * | 2007-03-14 | 2008-09-18 | Qualcomm Incorporated | System, method and software to preload instructions from an instruction set other than one currently executing |
| CN112395000A (en) * | 2019-08-13 | 2021-02-23 | 杭州中天微系统有限公司 | Data preloading method and instruction processing device |
| CN111159062A (en) * | 2019-12-20 | 2020-05-15 | 海光信息技术有限公司 | Cache data scheduling method and device, CPU chip and server |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115659115A (en) * | 2022-11-01 | 2023-01-31 | 山东云海国创云计算装备产业创新中心有限公司 | A vector data pre-reading method, system, device and readable storage medium |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7114059B2 (en) | System and method to bypass execution of instructions involving unreliable data during speculative execution | |
| US8214598B2 (en) | System, method, and apparatus for a cache flush of a range of pages and TLB invalidation of a range of entries | |
| US9632776B2 (en) | Preload instruction control | |
| JP4927840B2 (en) | Instruction cache with a fixed number of variable-length instructions | |
| US20090006803A1 (en) | L2 Cache/Nest Address Translation | |
| US8667258B2 (en) | High performance cache translation look-aside buffer (TLB) lookups using multiple page size prediction | |
| KR102268601B1 (en) | Processor for data forwarding, operation method thereof and system including the same | |
| CN114528023A (en) | Computer processor with register direct branch and using instruction preload architecture | |
| JP2009544104A (en) | Method and system for indicating a page causing an exception in a microprocessor | |
| US11016771B2 (en) | Processor and instruction operation method | |
| US7769983B2 (en) | Caching instructions for a multiple-state processor | |
| CN114610391A (en) | Data loading method and related device of RISC-V vector processor | |
| CN117971722B (en) | Execution method and device for fetch instruction | |
| TWI768547B (en) | Pipeline computer system and instruction processing method | |
| CN111198827B (en) | Page table prefetching method and device | |
| CN119960705B (en) | Micro-operation extraction method and device based on physical memory protection and electronic equipment | |
| US20170315807A1 (en) | Hardware support for dynamic data types and operators | |
| KR100957857B1 (en) | Instruction fetcher for 16-bit instruction set | |
| Pimentel et al. | Hardware versus hybrid data prefetching in multimedia processors: A case study | |
| CN119415446A (en) | A method and device for improving memory virtualization address substitution efficiency | |
| JPH11203133A (en) | Information processing device | |
| JPH02239330A (en) | Information processor |
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 |