CN105283855A - 一种寻址方法及装置 - Google Patents

一种寻址方法及装置 Download PDF

Info

Publication number
CN105283855A
CN105283855A CN201480000679.2A CN201480000679A CN105283855A CN 105283855 A CN105283855 A CN 105283855A CN 201480000679 A CN201480000679 A CN 201480000679A CN 105283855 A CN105283855 A CN 105283855A
Authority
CN
China
Prior art keywords
virtual address
address
predeterminated position
page
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.)
Granted
Application number
CN201480000679.2A
Other languages
English (en)
Other versions
CN105283855B (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105283855A publication Critical patent/CN105283855A/zh
Application granted granted Critical
Publication of CN105283855B publication Critical patent/CN105283855B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及计算机技术领域,尤其涉及一种寻址方法及装置,用以解决寻址效率较低的问题。本发明方法包括:接收地址转换请求,所述地址转换请求中包含有虚拟地址;根据所述虚拟地址中第一预设位置的值,从MMU管理的多个寄存器中确定待访问的寄存器,其中,所述内存空间至少包括以下之一:内核的虚拟地址空间和进程的虚拟地址空间;根据所述虚拟地址中第二预设位置的值,在待访问的寄存器保存的页目录的基地址所指向的页目录中查找所述虚拟地址指向的页表的基地址;根据所述虚拟地址中第三预设位置的值,在所述页表的基地址所指向的页表中查找所述虚拟地址对应的页表项;根据查找到的所述页表项将所述虚拟地址转换为物理地址。

Description

一种寻址方法及装置 技术领域
本发明涉及计算机技术领域, 尤其涉及一种寻址方法及装置。 背景技术
在计算机应用中, 处理器一般会使用虚拟地址访问内存。 在使用虚拟地 址访问内存时, 需要先将虚拟地址转换成物理地址, 从而可以确定数据在内 存中的实际位置。 CPU—般釆用内存管理单元( Memory management Unit, MMU )来完成虚拟地址到物理地址的映射。
MMU通过建立页表项实现从虚拟地址到物理地址的映射。在二级管理模 式下, 基于页表项的地址查询方式依次包括对页目录和页表的查询。 其中, 页目录中存储有多个页表的基地址, 每个页表中存储有多个页表项。 页表项 中记录有这个虚拟地址所对应物理页的物理基地址。
进程是操作系统结构的基础, 它是一个具有独立功能的程序关于某个数 据集合的一次运行活动, 可以认为是一次程序的执行。 内核是操作系统的核 心, 提供操作系统的最基本的功能, 是操作系统工作的基础, 它负责管理系 统的进程和内存。 每个进程都有其各自专用的虚拟地址空间 (即用户空间) 以及用于寻址的页目录; 同时, 每个进程可以通过系统调用进入内核, 因此, 系统内所有进程共享内核的虚拟地址空间 (即内核空间)以及内核的页目录。 中央处理器( Central Processing Unit, CPU ) 中只存在一个保存页目录基地址 的寄存器(即 CR3寄存器)。 在进程调度时, 该寄存器指向当前进程的页目录 基地址, 在进程切换时, 该寄存器切换当前所指向的页目录基地址。 当任意 一个进程需要访问内核的虚拟地址空间时, 需要将内核的页目录中页表的基 地址拷贝到该进程的页目录下, 增加了操作时间。 发明内容
本发明实施例提供一种寻址方法及装置, 用以解决寻址效率较低的问题。 第一方面, 提供一种寻址方法, 该方法包括:
接收地址转换请求, 所述地址转换请求中包含有虚拟地址;
根据所述虚拟地址中第一预设位置的值, 从内存管理单元 MMU管理的 多个寄存器中确定待访问的寄存器, 所述待访问的寄存器中保存有与所述虚 拟地址对应的内存空间的页目录的基地址, 其中, 所述内存空间至少包括以 下之一: 内核的虚拟地址空间和进程的虚拟地址空间;
根据所述虚拟地址中第二预设位置的值, 在所述页目录的基地址所指向 的页目录中查找所述虚拟地址指向的页表的基地址;
根据所述虚拟地址中第三预设位置的值, 在所述页表的基地址所指向的 页表中查找所述虚拟地址对应的页表项, 所述页表项中记录有所述虚拟地址 所对应的页面的物理基地址;
根据查找到的所述页表项将所述虚拟地址转换为物理地址;
其中, 所述第一预设位置、 所述第二预设位置与所述第三预设位置互不 相同。
结合第一方面, 在第一种可能的实现方式中, 所述根据所述虚拟地址中 第一预设位置的值, 从内存管理单元 MMU管理的多个寄存器中确定待访问 的寄存器包括:
根据所述虚拟地址中第一预设位置的值, 以及预设的寄存器与数值的对 应关系, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄存器。
结合第一方面, 或第一方面的第一种可能的实现方式, 在第二种可能的 实现方式中, 所述第一预设位置为所述虚拟地址的高 N位, N为正整数, 且 N > 1„
结合第一方面, 或第一方面的第一或第二种可能的实现方式, 在第三种 可能的实现方式中, 所述根据确定的所述页表项将所述虚拟地址转换为物理 地址, 包括: 将所述页表项中记录的所述虚拟地址对应的页面的物理基地址与所述虚 拟地址中第四预设位置的值进行组合, 确定组合后的地址为将所述虚拟地址 转换后的物理地址; 其中, 所述虚拟地址中第四预设位置的值为页内偏移量。
第二方面, 提供一种寻址装置, 包括:
接收模块, 用于接收地址转换请求, 所述地址转换请求中包含有虚拟地 址;
确定模块, 用于根据所述虚拟地址中第一预设位置的值, 从内存管理单 元 MMU管理的多个寄存器中确定待访问的寄存器, 所述待访问的寄存器中 保存有与所述虚拟地址对应的内存空间的页目录的基地址; 其中, 所述内存 空间至少包括以下之一: 内核的虚拟地址空间和进程的虚拟地址空间;
第一查找模块, 用于根据所述虚拟地址中第二预设位置的值, 在所述页 目录的基地址所指向的页目录中查找所述虚拟地址指向的页表的基地址; 第二查找模块, 用于根据所述虚拟地址中第三预设位置的值, 在所述页 表的基地址所指向的页表中查找所述虚拟地址对应的页表项, 所述页表项中 记录有所述虚拟地址所对应的页面的物理基地址; 其中, 所述第一预设位置、 所述第二预设位置与所述第三预设位置互不相同;
转换模块, 用于根据所述第二查找模块查找到的所述页表项, 将所述虚 拟地址转换为物理地址。
结合第二方面, 在第一种可能的实现方式中, 所述确定模块具体用于: 根据所述虚拟地址中第一预设位置的值, 以及预设的寄存器与数值的对 应关系, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄存器。
结合第二方面, 或第二方面的第一种可能的实现方式, 在第二种可能的 实现方式中, 所述第一预设位置为所述虚拟地址的高 N位, N为正整数, 且 N > 1„
结合第二方面, 或第二方面的第一或第二种可能的实现方式, 在第三种 可能的实现方式中, 所述转换模块具体用于:
将所述页表项中记录的所述虚拟地址对应的页面的物理基地址与所述虚 拟地址中第四预设位置的值进行组合, 确定组合后的地址为将所述虚拟地址 转换后的物理地址; 其中, 所述虚拟地址中第四预设位置的值为页内偏移量。
第三方面, 提供一种寻址装置, 该装置包括处理器、 存储器和总线, 所 述存储器存储执行指令, 当所述装置运行时, 所述处理器与所述存储器之间 通过总线通信, 所述处理器执行所述执行指令使得所述装置执行如下方法: 接收地址转换请求, 所述地址转换请求中包含有虚拟地址;
根据所述虚拟地址中第一预设位置的值, 从内存管理单元 MMU管理的 多个寄存器中确定待访问的寄存器, 所述待访问的寄存器中保存有与所述虚 拟地址对应的内存空间的页目录的基地址; 其中, 所述内存空间至少包括以 下之一: 内核的虚拟地址空间和进程的虚拟地址空间;
根据所述虚拟地址中第二预设位置的值, 在所述页目录的基地址所指向 的页目录中查找所述虚拟地址指向的页表的基地址;
根据所述虚拟地址中第三预设位置的值, 在所述页表的基地址所指向的 页表中查找所述虚拟地址对应的页表项, 所述页表项中记录有所述虚拟地址 所对应的页面的物理基地址;
根据查找到的所述页表项将所述虚拟地址转换为物理地址;
其中, 所述第一预设位置、 所述第二预设位置与所述第三预设位置互不 相同。
结合第三方面, 在第一种可能的实现方式中, 所述处理器执行的所述方 法中, 所述根据所述虚拟地址中第一预设位置的值, 从内存管理单元 MMU 管理的多个寄存器中确定待访问的寄存器包括:
根据所述虚拟地址中第一预设位置的值, 以及预设的寄存器与数值的对 应关系, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄存器。
结合第三方面, 或第三方面的第一种可能的实现方式, 在第二种可能的 实现方式中, 所述第一预设位置为所述虚拟地址的高 N位, N为正整数, 且 N > 1„
结合第三方面, 或第三方面的第一或第二种可能的实现方式, 在第三种 可能的实现方式中, 所述处理器执行的所述方法中, 所述根据确定的所述页 表项将所述虚拟地址转换为物理地址, 包括:
将所述页表项中记录的所述虚拟地址对应的页面的物理基地址与所述虚 拟地址中第四预设位置的值进行组合, 确定组合后的地址为将所述虚拟地址 转换后的物理地址; 其中, 所述虚拟地址中第四预设位置的值为页内偏移量。
釆用上述方法, MMU可以管理多个寄存器, 其中不同的寄存器可以管理 不同的内存空间, 根据这种方式, 不同的寄存器可以保存不同的内存空间的 页目录基地址。 当任意一个进程需要基于虚拟地址访问内存时, 从 MMU管 理的多个寄存器中, 确定管理该虚拟地址所属的内存空间的待访问寄存器, 根据待访问寄存器所指向的页目录基地址进行寻址。 因此, 釆用上述方法, 在需要访问进程专用的虚拟地址空间时, 可以通过进程专用的虚拟地址空间 对应的寄存器进行寻址, 在需要访问内核的虚拟地址空间时, 可以直接通过 内核的虚拟地址空间对应的寄存器进行寻址, 而不必再将内核的页表的基地 址拷贝到该进程的页目录下, 节省了操作时间。 附图说明
为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例或现有 技术描述中所需要使用的附图作简单地介绍。
图 1为 CPU的线路连接示意图;
图 2为本发明实施例一提供的寻址方法流程图;
图 3 为釆用两个寄存器分别保存进程专用的虚拟地址空间和内核的虚拟 地址空间的页目录基地址的示意图;
图 4 ( a )为釆用虚拟地址的 62、 63位来标识不同的寄存器的示意图; 图 4 ( b )为釆用虚拟地址的 0、 1位来标识不同的寄存器的示意图; 图 4 ( c )为釆用虚拟地址的 31、 32位来标识不同的寄存器的示意图; 图 5为本发明实施例中针对 32位操作系统进行地址转换的示意图; 图 6为本发明实施例中针对 64位操作系统进行地址转换的示意图; 图 7为本发明实施例二提供的寻址装置示意图;
图 8为本发明实施例三提供的寻址装置示意图。 具体实施方式
为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本发 明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描述。 显然, 所描述的实施例是本发明一部分实施例, 而不是全部的实施例。
本发明实施例应用于处理器在读或写入内存时, 进行地址转换的场景。 在处理器中, 每次程序的执行由进程来完成。 在进程运行中, 涉及对内存的 读写操作。其中,用户模式下运行的进程在对内存执行操作时,需要通过 MMU 将该进程专用的虚拟地址空间 (即用户空间) 中的虚拟地址转换成物理地址。 虚拟地址也可以称为虚地址, 物理地址也可以称为实地址。 核心操作系统组 件和多个驱动程序大多需要进程在内核模式下运行(进程通过系统调用进入 内核), 此时, 进程在运行中对内存执行操作时, 需要通过 MMU将内核的虚 拟地址空间 (即内核空间) 中的虚拟地址转换成物理地址。 这里的 MMU是 CPU 中用于管理虚拟存储器、 物理存储器的控制线路, 同时也负责将虚拟地 址映射为物理地址。
如图 1所示, 图 1为 CPU的线路连接示意图。 CPU中的 MMU通过地址 总线接收 CPU执行单元(如上述进程)发送的虚拟地址, 并将该虚拟地址转 换成物理地址。 按照现有的地址转换方式, CPU 中只存在一个寄存器保存页 目录基地址。 进程在对内存执行操作时, 将需要进行地址转换的虚拟地址发 送给 MMU,若 MMU确定所述需要进行地址转换的虚拟地址属于进程专用的 虚拟地址空间, 则直接确定管理的寄存器当前所指向的页目录基地址, 若 MMU确定所述需要进行地址转换的虚拟地址属于内核空间,则还需要将内核 的页表的基地址拷贝到该进程的页目录下, 并确定管理的寄存器当前所指向 的页目录基地址。 在确定页目录基地址之后, 对于 32位操作系统, 可以从该 页目录基地址所指向的物理页面中, 查询虚拟地址的第 22位到第 31位对应 的页表的基地址; 从该页表的基地址所指向的物理页面中, 查询该虚拟地址 的第 12位到第 21位对应的页表项; 该页表项中记录有该虚拟地址对应的页 面的物理基地址, 将该物理基地址与该虚拟地址所标识的页内偏移量进行组 合即为转换后的物理地址。
下面结合说明书附图对本发明实施例作进一步详细描述。
如图 2所示, 为本发明实施例一提供的寻址方法流程图。 该实施例一的 寻址流程涉及虚拟地址到物理地址的转换过程。 其中, 物理地址是放在寻址 总线上的实体地址, 根据物理地址, 可直接确定数据在内存中的实际位置。 虚拟地址是虚拟地址空间中的地址, 使用虚拟地址的优势在于: 可以使用一 的虚拟地址可以彼此隔离, 从而一个进程中的代码无法更改正在由另一进程 使用的物理内存。
本发明实施例一的步骤主要包括:
S201 : 接收地址转换请求, 所述地址转换请求中包含有虚拟地址; 本发明实施例一所有步骤的执行主体可以为 CPU 中的内存管理单元 ( Memory management Unit, MMU )。 具体地, MMU接^: CPU执行单元 ( ^口 进程 )通过地址总线发送的包含虚拟地址的地址转换请求。
S202: 根据所述虚拟地址中第一预设位置的值, 从内存管理单元 MMU 管理的多个寄存器中确定待访问的寄存器, 所述待访问的寄存器中保存有与 所述虚拟地址对应的内存空间的页目录的基地址; 其中, 所述内存空间至少 包括以下之一: 内核的虚拟地址空间和进程的虚拟地址空间。
本发明实施例中, 为 MMU配置了多个保存页目录基地址的寄存器, 不 同的寄存器保存不同的内存空间的页目录基地址。 这里的内存空间可以是内 核的虚拟地址空间(即内核空间)或进程专用的虚拟地址空间(及用户空间)。 在具体实施过程中, 保存不同的内存空间的页目录基地址的寄存器可以是预 先设定的。 例如, 设置保存进程专用的虚拟地址空间的页目录基地址的寄存 器为 Cr3 ,设置保存内核的虚拟地址空间的页目录基地址的寄存器为 Crm。如 图 3所示, 图 3为釆用两个寄存器分别保存进程专用的虚拟地址空间和内核 的虚拟地址空间的页目录基地址的示意图。 当所述虚拟地址为进程专用的虚 拟地址空间中的虚拟地址时, 可以通过 Cr3 寄存器指向的页目录基地址, 进 行页表项查询; 当所述虚拟地址为内核的虚拟地址空间中的虚拟地址时, 可 以通过 Crm寄存器指向的页目录基地址, 进行页表项查询。
在需要进行地址转换时, 首先确定保存虚拟地址对应的内存空间的页目 录基地址的寄存器 (即待访问寄存器)。 CPU确定待访问寄存器的方式具体可 以是: 根据所述虚拟地址中第一预设位置的值, 以及预设的寄存器与数值的 对应关系, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄存器。 在本发明实施例中, 预设的寄存器与不同的数值之间具有对应关系, 该对应 关系可以是预先定义的, 在进行地址转换时, 根据该预先定义的对应关系, 确定所述虚拟地址的第一预设位置的值所标识的寄存器, 将所述虚拟地址的 第一预设位置的值所标识的寄存器作为所述待访问寄存器。 这里的第一预设 位置的值具体可以是虚拟地址的高 N位、 低 N位、 中间 N位, 或整个虚拟地 址的值等, 在此不进行限制。 例如, 如图 4 ( a )所示, 在 64位操作系统下, 可以釆用虚拟地址的 62、 63位上的数值 00、 01、 10、 11来标识不同的寄存 器。 在本发明实施例中, 数值 00、 01、 10、 11分别对应预设的不同的寄存器, 比如, 数值 00对应预设的寄存器 Cr3 , 数值 01对应预设的寄存器 Crm, 数值 10对应预设的寄存器 Cm, 数值 11对应预设的寄存器 Crx。 如图 4 ( b )所示, 在 64位操作系统下, 还可以釆用虚拟地址的 0、 1位上的数值 00、 01、 10、 11来标识不同的寄存器, 如图 4 ( c )所示, 在 64位操作系统下, 还可以釆用 虚拟地址的 31、 32位上的数值 00、 01、 10、 11来标识不同的寄存器。 当将 整个虚拟地址的值作为所述第一预设位置的值时, 可以首先确定所述虚拟地 址所属的内存空间 (也即所属的虚拟地址范围), 才艮据不同的内存空间与寄存 器的对应关系, 确定所述待访问的寄存器。
S203: 根据所述虚拟地址中第二预设位置的值, 在所述页目录的基地址 所指向的页目录中查找所述虚拟地址指向的页表的基地址; S204: 根据所述虚拟地址中第三预设位置的值, 在所述页表的基地址所 指向的页表中查找所述虚拟地址对应的页表项, 所述页表项中记录有所述虚 拟地址所对应的页面的物理基地址; 其中, 所述第一预设位置、 所述第二预 设位置与所述第三预设位置互不相同。
在步骤 S203和步骤 S204中, 根据待访问的寄存器当前所指向的页目录 基地址, 定位到页目录所在的物理页面。 在所述页目录中包含多个目录项, 每个目录项中记录对应的虚拟地址的第二预设位置的值与页表的基地址的对 应关系, 因此, 根据虚拟地址的第二预设位置的值, 可以查找到所述虚拟地 址所指向的页表的基地址。 在查找到所述虚拟地址所指向的页表的基地址之 后, 可以根据查找到的页表的基地址, 定位到所述页表所在的物理页面。 在 所述页表中包含多个页表项, 每个页表项中记录虚拟地址的第三预设位置的 值与页面的物理基地址的对应关系, 因此, 根据所述虚拟地址的第三预设位 置的值, 可以查找到具体的页表项, 也即查找到所述虚拟地址所对应的页面 的物理基地址, 这里的物理基地址即为页面的起始物理地址。
S205: 根据查找到的所述页表项, 将所述虚拟地址转换为所述物理地址。 这里, 根据确定的所述页表项, 将所述虚拟地址转换为物理地址的过程 具体包括:
将所述页表项中记录的所述虚拟地址对应的页面的物理基地址与所述虚 拟地址中第四预设位置的值进行组合, 确定组合后的地址为将所述虚拟地址 转换后的物理地址; 其中, 所述虚拟地址中第四预设位置的值为页内偏移量。
比如, 在步骤 S205中, 在查找到所述虚拟地址对应的页表项后, 将所述 页表项中记录的 M位物理基地址与所述虚拟地址中的 N位页内偏移量组合在 一起, 作为转换后的 M+N位物理地址。
下面, 分别针对 32位和 64位操作系统, 列举两个本发明实施例中进行 地址转换的具体示例。 需要说明的是, 本发明实施例中设定的第一预设位置、 第二预设位置、 第三预设位置和第四预设位置仅作为本发明中可选的实施方 式之一, 在具体实施中, 可以根据实际需要及操作系统类型变换各预设位置。 如图 5所示, 图 5为本发明实施例中针对 32位操作系统进行地址转换的 示意图。 图 5中, 虚拟地址的 30、 31位的值为所述第一预设位置的值, 用于 标识待访问的寄存器; 虚拟地址的 20~29位的值为所述第二预设位置的值, 可作为目录项的索引, 该目录项中记录有所述第二预设位置的值所对应的页 表的基地址; 虚拟地址的 10~19位的值为所述第三预设位置的值, 可作为页 表项的索引, 该页表项中记录有所述第三预设位置的值所对应的页面的物理 基地址; 虚拟地址的 0~9位的值为所述第四预设位置的值, 用于标识页内偏 移量。
实际应用中, 在进行地址转换时, 可以根据虚拟地址的 30、 31位的值, 确定待访问的寄存器为 Cr3 ,根据 Cr3当前所指向的页目录的基地址, 定位到 页目录所在的物理页面。 之后, 以所述虚拟地址的 20~29位的值作为索引, 在所述页目录所在的物理页面中查询具体的目录项, 该目录项中记录有所述 虚拟地址的 20~29位的值所对应的页表的基地址。 根据查找到的页表的基地 址, 定位到页表所在的物理页面。 之后, 以虚拟地址的 10~19位的值作为索 引, 在所述页表所在的物理页面中查询具体的页表项, 该页表项中记录有所 述虚拟地址的 10~19位的值所对应的页面的物理基地址。 之后, 将查找到的 该物理基地址与虚拟地址的 0~9位的值进行组合, 即为转换后的物理地址。
如图 6所示, 图 6为本发明实施例中针对 64位操作系统进行地址转换的 示意图。 图 6中, 虚拟地址的 62、 63位的值为所述第一预设位置的值, 用于 标识待访问的寄存器; 虚拟地址的 41~61位的值为所述第二预设位置的值, 可作为目录项的索引, 该目录项中记录有所述第二预设位置的值所对应的页 表的基地址; 虚拟地址的 20~40位的值为所述第三预设位置的值, 可作为页 表项的索引, 该页表项中记录有所述第三预设位置的值所对应的页面的物理 基地址; 虚拟地址的 0~19位的值为所述第四预设位置的值, 用于标识页内偏 移量。
实际应用中, 在进行地址转换时, 可以根据虚拟地址的 62、 63位的值, 确定待访问的寄存器为 Crm, 根据 Crm当前所指向的页目录的基地址, 定位 到页目录所在的物理页面。 之后, 以所述虚拟地址的 41~61位的值作为索引, 在所述页目录所在的物理页面中查询具体的目录项, 该目录项中记录有所述 虚拟地址的 41~61 位的值所对应的页表的基地址。 根据查找到的页表的基地 址, 定位到页表所在的物理页面。 之后, 以虚拟地址的 20~40位的值作为索 引, 在所述页表所在的物理页面中查询具体的页表项, 该页表项中记录有所 述虚拟地址的 20~40位的值所对应的页面的物理基地址。 之后, 将查找到的 该物理基地址与虚拟地址的 0~19位的值进行组合, 即为转换后的物理地址。
釆用本发明以上实施例提供的寻址方法, MMU通过不同的寄存器分别保 存内核空间和进程专用的虚拟地址空间的页目录基地址, 在需要访问进程专 用的虚拟地址空间时, 可以通过进程专用的虚拟地址空间对应的寄存器进行 寻址, 在需要访问内核的虚拟地址空间时, 可以直接通过内核的虚拟地址空 间对应的寄存器进行寻址, 从而不必再将内核的页表的基地址拷贝到该进程 的页目录下, 节省了操作时间。 同时, 由于内核页目录中只包括内核页表的 基地址, 可以提高寻址效率。
基于同一发明构思, 本发明实施例中还提供了与寻址方法对应的寻址装 置, 由于本发明实施例中的装置解决问题的原理与本发明实施例上述寻址方 法相似, 因此装置的实施可以参见方法的实施, 重复之处不再赘述。
如图 7所示, 为本发明实施例二提供的寻址装置示意图, 包括: 接收模块 71 , 用于接收地址转换请求, 所述地址转换请求中包含有虚拟 地址;
确定模块 72 , 用于根据所述虚拟地址中第一预设位置的值, 从内存管理 单元 MMU管理的多个寄存器中确定待访问的寄存器, 所述待访问的寄存器 中保存有与所述虚拟地址对应的内存空间的页目录的基地址, 将所述页目录 的基地址传输至第一查找模块 73 ; 其中, 所述内存空间至少包括以下之一: 内核的虚拟地址空间和进程的虚拟地址空间;
第一查找模块 73 , 用于根据所述虚拟地址中第二预设位置的值, 在所述 页目录的基地址所指向的页目录中查找所述虚拟地址指向的页表的基地址, 并将查找到的所述页表的基地址传输至第二查找模块 74;
第二查找模块 74, 用于根据所述虚拟地址中第三预设位置的值, 在所述 页表的基地址所指向的页表中查找所述虚拟地址对应的页表项, 所述页表项 中记录有所述虚拟地址所对应的页面的物理基地址; 其中, 所述第一预设位 置、 所述第二预设位置与所述第三预设位置互不相同;
转换模块 75 , 用于根据所述第二查找模块 74查找到的所述页表项, 将所 述虚拟地址转换为物理地址。
可选地, 所述确定模块具体用于:
根据所述虚拟地址中第一预设位置的值, 以及预设的寄存器与数值的对 应关系, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄存器。
可选地, 所述第一预设位置为所述虚拟地址的高 N位, N为正整数, 且 N > 1„
可选地, 所述转换模块 75具体用于:
将所述页表项中记录的所述虚拟地址对应的页面的物理基地址与所述虚 拟地址中第四预设位置的值进行组合, 确定组合后的地址为将所述虚拟地址 转换后的物理地址; 其中, 所述虚拟地址中第四预设位置的值为页内偏移量。
釆用本发明以上实施例提供的寻址装置, MMU通过不同的寄存器分别保 存内核空间和进程专用的虚拟地址空间的页目录基地址, 确定模块可以从 MMU管理的多个寄存器中确定待访问的寄存器。在需要访问进程专用的虚拟 地址空间时, 第一查找模块可以通过进程专用的虚拟地址空间对应的寄存器 中保存的页目录基地址来确定进程的页目录所在的物理页面, 在需要访问内 核的虚拟地址空间时, 第一查找模块可以直接通过内核的虚拟地址空间对应 的寄存器中保存的页目录基地址来确定内核的页目录所在的物理页面, 从而 不必再将内核的页表的基地址拷贝到该进程的页目录下, 节省了操作时间。 同时, 由于内核页目录中只包括内核页表的基地址, 可以提高寻址效率。
如图 8所示, 为本发明实施例三提供的寻址装置 80示意图, 该装置包括 处理器 81、 存储器 82和总线 83 , 所述存储器 82存储执行指令, 当所述装置 运行时, 所述处理器 81与所述存储器 82之间通过总线 83通信, 所述处理器
81执行所述执行指令使得所述装置执行如下方法:
接收地址转换请求, 所述地址转换请求中包含有虚拟地址;
根据所述虚拟地址中第一预设位置的值, 从内存管理单元 MMU管理的 多个寄存器中确定待访问的寄存器, 所述待访问的寄存器中保存有与所述虚 拟地址对应的内存空间的页目录的基地址; 其中, 所述内存空间至少包括以 下之一: 内核的虚拟地址空间和进程的虚拟地址空间;
根据所述虚拟地址中第二预设位置的值, 在所述页目录的基地址所指向 的物理页面中查找所述虚拟地址指向的页表的基地址;
根据所述虚拟地址中第三预设位置的值, 在所述页表的基地址所指向的 物理页面中查找所述虚拟地址对应的页表项, 所述页表项中记录有所述虚拟 地址所对应的页面的物理基地址;
根据查找到的所述页表项将所述虚拟地址转换为物理地址;
其中, 所述第一预设位置、 所述第二预设位置与所述第三预设位置互不 相同。
可选地, 所述处理器执行的所述方法中, 所述根据所述虚拟地址中第一 预设位置的值, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄 存器包括:
根据所述虚拟地址中第一预设位置的值, 以及预设的寄存器与数值的对 应关系, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄存器。
可选地, 所述第一预设位置为所述虚拟地址的高 N位, N为正整数, 且 N > 1„
可选地, 所述处理器 81执行的所述方法中, 所述根据确定的所述页表项 将所述虚拟地址转换为物理地址, 包括:
将所述页表项中记录的所述虚拟地址对应的页面的物理基地址与所述虚 拟地址中第四预设位置的值进行组合, 确定组合后的地址为将所述虚拟地址 转换后的物理地址; 其中, 所述虚拟地址中第四预设位置的值为页内偏移量。 釆用本发明以上实施例提供的寻址装置, MMU通过不同的寄存器分别保 存内核空间和进程专用的虚拟地址空间的页目录基地址 ,处理器可以从 MMU 管理的多个寄存器中确定待访问的寄存器。 在需要访问进程专用的虚拟地址 空间时, 处理器可以通过进程专用的虚拟地址空间对应的寄存器进行寻址, 在需要访问内核的虚拟地址空间时, 处理器可以直接通过内核的虚拟地址空 间对应的寄存器进行寻址, 从而不必再将内核的页表的基地址拷贝到该进程 的页目录下, 节省了操作时间。 同时, 由于内核页目录中只包括内核页表的 基地址, 可以提高寻址效率。
本领域内的技术人员应明白, 本发明的实施例可提供为方法、 系统、 或 计算机程序产品。 因此, 本发明可釆用完全硬件实施例、 完全软件实施例、 或结合软件和硬件方面的实施例的形式。 而且, 本发明可釆用在一个或多个 其中包含有计算机可用程序代码的计算机可用存储介质 (包括但不限于磁盘 存储器、 CD-ROM、 光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、 装置(系统)、 和计算机程序产 品的流程图和 /或方框图来描述的。 应理解可由计算机程序指令实现流程图 和 /或方框图中的每一流程和 /或方框、 以及流程图和 /或方框图中的流程 和 /或方框的结合。 可提供这些计算机程序指令到通用计算机、 专用计算机、 嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器, 使得通 过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流 程图一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的 装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设 备以特定方式工作的计算机可读存储器中, 使得存储在该计算机可读存储器 中的指令产生包括指令装置的制造品, 该指令装置实现在流程图一个流程或 多个流程和 /或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上, 使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的 处理, 从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图 一个流程或多个流程和 /或方框图一个方框或多个方框中指定的功能的步 骤。
需要说明的是, 本申请所提供的实施例仅仅是示意性的。 所属领域的技 术人员可以清楚地了解到, 为了描述的方便和简洁, 在上述实施例中, 对各 个实施例的描述都各有侧重, 某个实施例中没有详述的部分, 可以参见其他 实施例的相关描述。 在本发明实施例、 权利要求以及附图中揭示的特征可以 独立存在也可以组合存在。 在本发明实施例中以硬件形式描述的特征可以通 过软件来执行, 反之亦然。 在此不做限定。

Claims (12)

  1. 权 利 要 求
    1、 一种寻址方法, 其特征在于, 该方法包括:
    接收地址转换请求, 所述地址转换请求中包含有虚拟地址;
    根据所述虚拟地址中第一预设位置的值, 从内存管理单元 MMU管理的 多个寄存器中确定待访问的寄存器, 所述待访问的寄存器中保存有与所述虚 拟地址对应的内存空间的页目录的基地址, 其中, 所述内存空间至少包括以 下之一: 内核的虚拟地址空间和进程的虚拟地址空间;
    根据所述虚拟地址中第二预设位置的值, 在所述页目录的基地址所指向 的页目录中查找所述虚拟地址指向的页表的基地址;
    根据所述虚拟地址中第三预设位置的值, 在所述页表的基地址所指向的 页表中查找所述虚拟地址对应的页表项, 所述页表项中记录有所述虚拟地址 所对应的页面的物理基地址;
    根据查找到的所述页表项将所述虚拟地址转换为物理地址;
    其中, 所述第一预设位置、 所述第二预设位置与所述第三预设位置互不 相同。
  2. 2、 如权利要求 1所述的方法, 其特征在于, 所述根据所述虚拟地址中第 一预设位置的值, 从内存管理单元 MMU管理的多个寄存器中确定待访问的 寄存器包括:
    根据所述虚拟地址中第一预设位置的值, 以及预设的寄存器与数值的对 应关系, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄存器。
  3. 3、 如权利要求 1或 2所述的方法, 其特征在于, 所述第一预设位置为所 述虚拟地址的高 N位, N为正整数, 且^^ > 1。
  4. 4、 如权利要求 1~3任一所述的方法, 其特征在于, 所述根据确定的所述 页表项将所述虚拟地址转换为物理地址, 包括:
    将所述页表项中记录的所述虚拟地址对应的页面的物理基地址与所述虚 拟地址中第四预设位置的值进行组合, 确定组合后的地址为将所述虚拟地址 转换后的物理地址; 其中, 所述虚拟地址中第四预设位置的值为页内偏移量。
  5. 5、 一种寻址装置, 其特征在于, 该装置包括:
    接收模块, 用于接收地址转换请求, 所述地址转换请求中包含有虚拟地 址;
    确定模块, 用于根据所述虚拟地址中第一预设位置的值, 从内存管理单 元 MMU管理的多个寄存器中确定待访问的寄存器, 所述待访问的寄存器中 保存有与所述虚拟地址对应的内存空间的页目录的基地址; 其中, 所述内存 空间至少包括以下之一: 内核的虚拟地址空间和进程的虚拟地址空间;
    第一查找模块, 用于根据所述虚拟地址中第二预设位置的值, 在所述页 目录的基地址所指向的页目录中查找所述虚拟地址指向的页表的基地址; 第二查找模块, 用于根据所述虚拟地址中第三预设位置的值, 在所述页 表的基地址所指向的页表中查找所述虚拟地址对应的页表项, 所述页表项中 记录有所述虚拟地址所对应的页面的物理基地址; 其中, 所述第一预设位置、 所述第二预设位置与所述第三预设位置互不相同;
    转换模块, 用于根据所述第二查找模块查找到的所述页表项, 将所述虚 拟地址转换为物理地址。
  6. 6、 如权利要求 5所述的装置, 其特征在于, 所述确定模块具体用于: 根据所述虚拟地址中第一预设位置的值, 以及预设的寄存器与数值的对 应关系, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄存器。
  7. 7、 如权利要求 5或 6所述的装置, 其特征在于, 所述第一预设位置为所 述虚拟地址的高 N位, N为正整数, 且^^ > 1。
  8. 8、 如权利要求 5~7任一所述的装置, 其特征在于, 所述转换模块具体用 于:
    将所述页表项中记录的所述虚拟地址对应的页面的物理基地址与所述虚 拟地址中第四预设位置的值进行组合, 确定组合后的地址为将所述虚拟地址 转换后的物理地址; 其中, 所述虚拟地址中第四预设位置的值为页内偏移量。
  9. 9、 一种寻址装置, 其特征在于, 该装置包括处理器、 存储器和总线, 所 述存储器存储执行指令, 当所述装置运行时, 所述处理器与所述存储器之间 通过总线通信, 所述处理器执行所述执行指令使得所述装置执行如下方法: 接收地址转换请求, 所述地址转换请求中包含有虚拟地址;
    根据所述虚拟地址中第一预设位置的值, 从内存管理单元 MMU管理的 多个寄存器中确定待访问的寄存器, 所述待访问的寄存器中保存有与所述虚 拟地址对应的内存空间的页目录的基地址; 其中, 所述内存空间至少包括以 下之一: 内核的虚拟地址空间和进程的虚拟地址空间;
    根据所述虚拟地址中第二预设位置的值, 在所述页目录的基地址所指向 的页目录中查找所述虚拟地址指向的页表的基地址;
    根据所述虚拟地址中第三预设位置的值, 在所述页表的基地址所指向的 页表中查找所述虚拟地址对应的页表项, 所述页表项中记录有所述虚拟地址 所对应的页面的物理基地址;
    根据查找到的所述页表项将所述虚拟地址转换为物理地址;
    其中, 所述第一预设位置、 所述第二预设位置与所述第三预设位置互不 相同。
  10. 10、 如权利要求 9 所述的装置, 其特征在于, 所述处理器执行的所述方 法中, 所述根据所述虚拟地址中第一预设位置的值, 从内存管理单元 MMU 管理的多个寄存器中确定待访问的寄存器包括:
    根据所述虚拟地址中第一预设位置的值, 以及预设的寄存器与数值的对 应关系, 从内存管理单元 MMU管理的多个寄存器中确定待访问的寄存器。
  11. 11、 如权利要求 9或 10所述的装置, 其特征在于, 所述第一预设位置为 所述虚拟地址的高 N位, N为正整数, 且^^ > 1。
  12. 12、 如权利要求 9~11任一所述的装置, 其特征在于, 所述处理器执行的 所述方法中, 所述根据确定的所述页表项将所述虚拟地址转换为物理地址, 包括:
    将所述页表项中记录的所述虚拟地址对应的页面的物理基地址与所述虚 拟地址中第四预设位置的值进行组合, 确定组合后的地址为将所述虚拟地址 转换后的物理地址; 其中, 所述虚拟地址中第四预设位置的值为页内偏移量。
CN201480000679.2A 2014-04-25 2014-04-25 一种寻址方法及装置 Active CN105283855B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/076227 WO2015161506A1 (zh) 2014-04-25 2014-04-25 一种寻址方法及装置

Publications (2)

Publication Number Publication Date
CN105283855A true CN105283855A (zh) 2016-01-27
CN105283855B CN105283855B (zh) 2018-01-23

Family

ID=54331641

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480000679.2A Active CN105283855B (zh) 2014-04-25 2014-04-25 一种寻址方法及装置

Country Status (2)

Country Link
CN (1) CN105283855B (zh)
WO (1) WO2015161506A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870870A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 访问超过地址总线宽度的内存空间
CN107870867A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 32位cpu访问大于4gb内存空间的方法与装置
CN108595349A (zh) * 2017-12-28 2018-09-28 贵阳忆芯科技有限公司 大容量存储设备的地址转换方法与装置
CN108845959A (zh) * 2018-06-25 2018-11-20 联想(北京)有限公司 一种内存数据处理方法、装置和电子设备
CN109144901A (zh) * 2018-10-10 2019-01-04 古进 公式化虚拟地址转换
CN109710544A (zh) * 2017-10-26 2019-05-03 杭州华为数字技术有限公司 内存访问方法、计算机系统以及处理装置
CN111279324A (zh) * 2017-11-02 2020-06-12 Arm有限公司 用于定位元数据的方法
CN112256598A (zh) * 2020-10-27 2021-01-22 上海壁仞智能科技有限公司 一种内存分配的方法及装置、内存寻址的方法及装置
CN114781323A (zh) * 2022-04-24 2022-07-22 苏州睿芯集成电路科技有限公司 Cpu芯片仿真加速中针对有mmu环境的内存状态恢复方法
CN115190102A (zh) * 2022-07-22 2022-10-14 北京象帝先计算技术有限公司 信息广播方法、装置、电子单元、soc及电子设备
CN115757260A (zh) * 2023-01-09 2023-03-07 摩尔线程智能科技(北京)有限责任公司 数据交互方法、图形处理器及图形处理系统
CN116225974A (zh) * 2021-12-03 2023-06-06 华为技术有限公司 内存管理方法及其设备

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502924B (zh) * 2016-10-27 2020-02-07 深圳创维数字技术有限公司 一种内存优化方法及系统
CN108491334B (zh) * 2018-03-08 2020-10-23 北京东土科技股份有限公司 一种嵌入式实时系统的物理内存管理方法及装置
CN109857553B (zh) * 2019-01-11 2023-07-28 华为云计算技术有限公司 内存管理方法及装置
CN110046106B (zh) * 2019-03-29 2021-06-29 海光信息技术股份有限公司 一种地址转换方法、地址转换模块及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276601A1 (en) * 2006-10-12 2009-11-05 Foundry Networks, Inc. Virtual memory mapping for efficient memory usage
CN101739359A (zh) * 2009-12-17 2010-06-16 深圳华为通信技术有限公司 存储装置、移动终端及数据访问方法、调频方法
CN101821723A (zh) * 2007-11-21 2010-09-01 密克罗奇普技术公司 以太网控制器
CN102124443A (zh) * 2008-08-15 2011-07-13 飞思卡尔半导体公司 在单指令多数据(simd)数据处理器中提供扩展寻址模式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090276601A1 (en) * 2006-10-12 2009-11-05 Foundry Networks, Inc. Virtual memory mapping for efficient memory usage
CN101821723A (zh) * 2007-11-21 2010-09-01 密克罗奇普技术公司 以太网控制器
CN102124443A (zh) * 2008-08-15 2011-07-13 飞思卡尔半导体公司 在单指令多数据(simd)数据处理器中提供扩展寻址模式
CN101739359A (zh) * 2009-12-17 2010-06-16 深圳华为通信技术有限公司 存储装置、移动终端及数据访问方法、调频方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107870870A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 访问超过地址总线宽度的内存空间
CN107870867A (zh) * 2016-09-28 2018-04-03 北京忆芯科技有限公司 32位cpu访问大于4gb内存空间的方法与装置
CN107870870B (zh) * 2016-09-28 2021-12-14 北京忆芯科技有限公司 访问超过地址总线宽度的内存空间
CN107870867B (zh) * 2016-09-28 2021-12-14 北京忆芯科技有限公司 32位cpu访问大于4gb内存空间的方法与装置
CN109710544B (zh) * 2017-10-26 2021-02-09 华为技术有限公司 内存访问方法、计算机系统以及处理装置
CN109710544A (zh) * 2017-10-26 2019-05-03 杭州华为数字技术有限公司 内存访问方法、计算机系统以及处理装置
CN111279324A (zh) * 2017-11-02 2020-06-12 Arm有限公司 用于定位元数据的方法
CN108595349B (zh) * 2017-12-28 2020-01-31 贵阳忆芯科技有限公司 大容量存储设备的地址转换方法与装置
CN111061655A (zh) * 2017-12-28 2020-04-24 贵阳忆芯科技有限公司 存储设备的地址转换方法与设备
CN108595349A (zh) * 2017-12-28 2018-09-28 贵阳忆芯科技有限公司 大容量存储设备的地址转换方法与装置
CN111061655B (zh) * 2017-12-28 2022-06-17 贵阳忆芯科技有限公司 存储设备的地址转换方法与设备
CN108845959A (zh) * 2018-06-25 2018-11-20 联想(北京)有限公司 一种内存数据处理方法、装置和电子设备
CN109144901B (zh) * 2018-10-10 2024-01-02 古进 公式化虚拟地址转换
CN109144901A (zh) * 2018-10-10 2019-01-04 古进 公式化虚拟地址转换
CN112256598A (zh) * 2020-10-27 2021-01-22 上海壁仞智能科技有限公司 一种内存分配的方法及装置、内存寻址的方法及装置
CN116225974A (zh) * 2021-12-03 2023-06-06 华为技术有限公司 内存管理方法及其设备
CN114781323B (zh) * 2022-04-24 2023-08-18 苏州睿芯集成电路科技有限公司 Cpu芯片仿真加速中针对有mmu环境的内存状态恢复方法
CN114781323A (zh) * 2022-04-24 2022-07-22 苏州睿芯集成电路科技有限公司 Cpu芯片仿真加速中针对有mmu环境的内存状态恢复方法
CN115190102A (zh) * 2022-07-22 2022-10-14 北京象帝先计算技术有限公司 信息广播方法、装置、电子单元、soc及电子设备
CN115190102B (zh) * 2022-07-22 2024-04-16 北京象帝先计算技术有限公司 信息广播方法、装置、电子单元、soc及电子设备
CN115757260A (zh) * 2023-01-09 2023-03-07 摩尔线程智能科技(北京)有限责任公司 数据交互方法、图形处理器及图形处理系统

Also Published As

Publication number Publication date
WO2015161506A1 (zh) 2015-10-29
CN105283855B (zh) 2018-01-23

Similar Documents

Publication Publication Date Title
CN105283855A (zh) 一种寻址方法及装置
JP6367797B2 (ja) 階層メモリシステムのためのメモリ管理
CN105830059B (zh) 文件访问方法、装置及存储设备
CN108664523B (zh) 一种虚拟磁盘文件格式转换方法和装置
US10776308B2 (en) Smart memory data store or load method and apparatus
TWI738737B (zh) 使用伴隨記憶體預配置的緩衝器映射方案的電腦實施方法及控制資料傳遞的裝置
JP2013522748A (ja) 階層的な変換テーブル制御
CN102662869B (zh) 虚拟机中的内存访问方法和装置及查找器
WO2016082191A1 (zh) 访问文件的方法和装置
CN104239237B (zh) 一种tlb管理方法及装置
US9436751B1 (en) System and method for live migration of guest
CN104407935A (zh) 快照回滚方法和存储设备
US20160147670A1 (en) Page cache device and method for efficient mapping
US10387325B2 (en) Dynamic address translation for a virtual machine
CN113641596B (zh) 缓存管理方法、缓存管理装置、处理器
WO2015043376A1 (zh) 一种页的访问方法和页的访问装置、服务器
GB2581938A (en) Configuration state registers grouped based on functional affinity
CN104503825A (zh) 一种基于kvm混合式设备虚拟化方法
WO2015043445A1 (zh) 一种虚拟大页面与物理大页面的对应方法及装置
CN105468400A (zh) 一种基于linux用户态调用定时器的方法及系统
CN104899159A (zh) 高速缓冲存储器Cache地址的映射处理方法和装置
CN102541623B (zh) 一种嵌入式处理器的存储空间模拟方法
US9535796B2 (en) Method, apparatus and computer for data operation
CN106528453B (zh) 基于复合尺度页的页表分区管理装置和方法
US11847052B2 (en) Memory allocation apparatus and method

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant