CN113722246B - 处理器中物理内存保护机制的实现方法及装置 - Google Patents
处理器中物理内存保护机制的实现方法及装置 Download PDFInfo
- Publication number
- CN113722246B CN113722246B CN202111287046.2A CN202111287046A CN113722246B CN 113722246 B CN113722246 B CN 113722246B CN 202111287046 A CN202111287046 A CN 202111287046A CN 113722246 B CN113722246 B CN 113722246B
- Authority
- CN
- China
- Prior art keywords
- page
- address
- physical
- translation
- physical address
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Storage Device Security (AREA)
Abstract
本发明一个或多个实施例提供一种处理器中物理内存保护机制的实现方法及装置,包括:根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址;根据第一虚拟地址查询翻译后备缓冲器,获取查询结果;如果查询结果为未命中翻译后备缓冲器,则通过页表查找部件根据第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将翻译结果返回翻译后备缓冲器,重新查询翻译后备缓冲器;如果查询结果为命中翻译后备缓冲器,则获取翻译后的物理地址以及对应的访问权限信息;根据翻译后的物理地址和对应的访问权限信息执行访问指令。本发明能够减少指令执行路径上PMP查询带来的延迟,降低了功耗。
Description
技术领域
本发明属于一种处理器微体系结构技术领域,具体是涉及到一种处理器中物理内存保护机制的实现方法及装置。
背景技术
第五代精简指令集(Reduced Instruction Set Computing-five,RISC-V)是目前使用较广泛的一种精简指令集。RISC-V中为了支持安全的处理,提供了一种限制软件可以访问的物理地址的机制,该机制称为物理内存保护机制(Physical Memory Protection,PMP)。该机制提供了一组可供配置的寄存器,包括16个PMP配置寄存器, pmpcfg0–pmpcfg15和64个PMP地址寄存器pmpaddr0–pmpaddr63。通过这些寄存器的配合,可以最小保护到4字节大小的物理内存区域,每个区域可以对3种访存属性进行配置,分别是X(是否可执行)、R(是否可读)和W(是否可以写)。PMP保护区域的表示方法有三种:TOR、NA4和NAPOT。 TOR通过两个pmpaddr寄存器分别表示受保护地址空间的起始地址和末尾地址,保护区域位于这两个地址之间。NA4表示对应pmpaddr地址开始对齐的4个字节是保护空间。NAPOT表示pmpaddr地址开始按2XLEN+3个字节对齐的区域是保护空间。
RISC-V处理器中指令取指、取数据、存数据以及进行翻译页表遍历(page tablewalk,PTW)都需要查询PMP,确定相关的访问权限。如果每次内存访问都要去查询PMP,那么将会有以下问题:为了能够快速访问,取指令部件、存储部件、PTW部件都需要实现一套PMP查找匹配的逻辑,浪费了处理器面积;64个PMP空间的查询需要额外的访问延迟,功耗太高。
发明内容
本发明要解决的技术问题是提供一种处理器中物理内存保护机制的实现方法及装置,以解决指令执行路径上PMP查询带来的延迟和功耗太高的问题。
基于上述目的,本发明一个或多个实施例提供了一种处理器中物理内存保护机制的实现方法,包括:根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址;根据所述第一虚拟地址查询翻译后备缓冲器,获取查询结果;如果所述查询结果为未命中所述翻译后备缓冲器,则通过页表遍历部件根据所述第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将所述翻译结果返回所述翻译后备缓冲器,重新查询所述翻译后备缓冲器;如果所述查询结果为命中所述翻译后备缓冲器,则获取翻译后的物理地址以及对应的访问权限信息;根据翻译后的物理地址和对应的访问权限信息执行所述访问指令。
可选的,所述根据所述第一虚拟地址查询翻译后备缓冲器,获取查询结果,包括:根据所述第一虚拟地址查询所述翻译后备缓冲器的所有页表项;如果查找到所述翻译后备缓冲器中有一个页表项的虚拟地址与所述第一虚拟地址相同,且所述页表项有效,则确定所述查询结果为所述第一虚拟地址命中所述翻译后备缓冲器;否则确定所述查询结果为未命中所述翻译后备缓冲器。
可选的,所述通过页表遍历部件根据所述第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,包括:将所述第一虚拟地址发送给所述页表遍历部件;通过所述页表遍历部件根据所述第一虚拟地址获取经过虚实地址转换后的第一页面的物理页面地址和第一页面属性;根据所述物理页面地址和所述页面属性获取所述第一虚拟地址经虚实地址转换后的物理地址,并对所述物理地址进行物理内存保护机制匹配检查,获取所述翻译结果。
可选的,所述通过所述页表遍历部件根据所述第一虚拟地址获取经过虚实地址转换后的第一页面的物理页面地址和第一页面属性,包括:根据所述第一虚拟地址获取第一级页表项的物理地址,并进行物理内存保护机制检查,获取第一级表项的信息;根据所述第一级表项的信息获取到下一级表项的物理地址,经过物理内存保护机制检查,获取下一级表项的信息;根据所述下一级表项的信息获取到再下一级表项的物理地址,循环直到获取叶子表项;根据所述叶子表项的页表级数获得所述叶子表项对应的所述第一页面的页面大小,从所述叶子表项中获得所述第一虚拟地址对应所述第一页面的物理页面地址和所述第一页面属性。
可选的,所述对所述物理地址进行物理内存保护机制匹配检查,获取所述翻译结果,包括:如果与所述物理地址匹配的物理内存保护区域完全覆盖了所述第一页面,则将所述第一页面属性与所述物理内存保护区域的属性合并,根据合并后的属性更新所述第一页面属性;如果所述第一页面的页面大小为4KB,且与所述物理地址匹配的物理内存保护区域部分覆盖所述第一页面,则获取所述物理地址所在的页面部分区域的起始地址和末尾地址以及与所述页面部分区域对应的第二页面属性;如果所述第一页面的页面大小大于4KB,且未被与所述物理地址匹配的物理内存保护区域完全覆盖,则对所述第一页面进行降级,获取包括所述物理地址的4KB大小的第二页面,根据所述第二页面与匹配的物理内存保护区域的重叠情况获取与所述第二页面对应的第三页面属性;如果所述第一页面未与任一物理内存保护区域有重叠,则确定所述翻译结果即为所述第一页面的物理页面地址和所述第一页面属性。
可选的,所述获取所述物理地址所在的页面部分区域的起始地址和末尾地址以及与所述页面部分区域对应的第二页面属性,包括:如果所述物理地址所在的页面部分区域在所述物理内存保护区域中,则获取所述页面部分区域的起始地址和末尾地址,将所述第一页面属性与所述物理内存保护区域的属性合并,并确定所述第二页面属性为合并后的属性;如果所述物理地址所在的页面部分区域不在所述物理内存保护区域中,则获取所述页面部分区域的起始地址和末尾地址,确定所述第二页面属性与所述第一页面属性相同。
可选的,所述翻译结果包括:虚实转换是否有效的信息;未发生降级的第一页面或者降级后的第二页面的物理地址、虚拟地址以及页面大小;页面属性;是否为页面部分区域的信息;页面部分区域的起始地址和末尾地址。
可选的,所述获取翻译后的物理地址以及对应的访问权限信息,包括:根据翻译后备缓冲器页表项中的物理地址和页面大小,结合所述第一虚拟地址,获取翻译后的所述物理地址;如果所述翻译后备缓冲器页表项指示为微小页面,则根据所述物理地址进行微小页面匹配,并根据匹配结果获取所述物理地址所在页面的页面属性,作为与所述物理地址对应的所述访问权限信息;否则直接获取翻译后备缓冲器页表项中记录的所述物理地址所在页面的页面属性,作为与所述物理地址对应的所述访问权限信息。
基于同一发明构思,本发明一个或多个实施例还提出了一种处理器中物理内存保护机制的实现装置,包括:虚拟地址计算单元,用于根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址;TLB查询单元,用于根据所述第一虚拟地址查询翻译后备缓冲器,获取查询结果;未命中处理单元,用于如果所述查询结果为未命中所述翻译后备缓冲器,则通过页表遍历部件根据所述第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将所述翻译结果返回所述翻译后备缓冲器,重新查询所述翻译后备缓冲器;命中处理单元,用于如果所述查询结果为命中所述翻译后备缓冲器,则获取翻译后的物理地址以及对应的访问权限信息;指令执行单元,用于根据翻译后的物理地址和对应的访问权限信息执行所述访问指令。
基于同一发明构思,本发明一个或多个实施例还提出了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项中所述的方法。
从上面所述可以看出,本发明一个或多个实施例提供的一种处理器中物理内存保护机制的实现方法及装置,通过根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址;根据第一虚拟地址查询翻译后备缓冲器,获取查询结果;如果查询结果为未命中翻译后备缓冲器,则通过页表遍历部件根据第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将翻译结果返回翻译后备缓冲器,重新查询翻译后备缓冲器;如果查询结果为命中翻译后备缓冲器,则获取翻译后的物理地址以及对应的访问权限信息;根据翻译后的物理地址和对应的访问权限信息执行访问指令,能够减少指令执行路径上PMP查询带来的延迟,降低了功耗。
附图说明
为了更清楚地说明本发明一个或多个实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明一个或多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一个或多个实施例中的RISC-V处理器中物理内存保护机制的实现方法的流程示意图;
图2为本发明一个或多个实施例中的步骤S13的方法流程示意图;
图3为本发明一个或多个实施例中的PMP保护区域和物理页面关系示意图;
图4为本发明一个或多个实施例中的TLB页表示意图;
图5为本发明一个或多个实施例中的获取物理地址和访问权限信息的方法示意图;
图6为本发明一个或多个实施例中的RISC-V处理器中物理内存保护机制的实现装置的结构示意图;
图7为本发明一个或多个实施例中电子设备示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,除非另外定义,本发明一个或多个实施例使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明一个或多个实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
本发明一个或多个实施例提供了一种RISC-V处理器中物理内存保护机制的实现方法。如附图1所示,RISC-V处理器中物理内存保护机制的实现方法包括:
步骤S11:根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址。
在本发明实施例中,取指令或者数据存取时,首先根据相应的访问指令的规则计算出指令或者数据对应的第一虚拟地址。虚拟地址不能直接访问内存,需要转换为物理地址,才能发送相关请求,访问对应的物理地址。
步骤S12:根据所述第一虚拟地址查询翻译后备缓冲器,获取查询结果。
翻译后备缓冲器(Translation Lookaside Buffer,TLB)是处理器中普遍采用的一种管理虚拟页面到物理页面映射的结构,用于加快地址翻译的过程。在步骤S12中,可选地,根据所述第一虚拟地址查询所述翻译后备缓冲器的所有页表项;如果查找到所述翻译后备缓冲器中有一个页表项的虚拟地址与所述第一虚拟地址相同,且所述页表项有效,则确定所述查询结果为所述第一虚拟地址命中所述翻译后备缓冲器;否则确定所述查询结果为未命中所述翻译后备缓冲器。如果没有命中,称为TLB失效。其中,页表项的虚拟地址一般是指该页表项的起始地址。
步骤S13:如果所述查询结果为未命中所述翻译后备缓冲器,则通过页表遍历部件根据所述第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将所述翻译结果返回所述翻译后备缓冲器,重新查询所述翻译后备缓冲器。
在本发明实施例中,第一虚拟地址未命中所述翻译后备缓冲器,则将TLB失效的第一虚拟地址发送给页表遍历部件PTW,通过PTW部件进行虚拟地址的翻译过程,并检查PMP,并返回相应的虚实转换信息。PTW部件一般每个处理器核心一个,负责根据页表翻译的规则将第一虚拟地址翻译为对应的物理地址。在步骤S13中,可选地,如图2所示,包括:
步骤S131:将所述第一虚拟地址发送给所述页表遍历部件。
即将TLB失效的第一虚拟地址发送给页表遍历部件。
步骤S132:通过所述页表遍历部件根据所述第一虚拟地址获取经过虚实地址转换后的第一页面的物理页面地址和第一页面属性。
在本发明实施例中,页表遍历部件首先进行正常的地址转换过程。
可选地,首先根据所述第一虚拟地址获取第一级页表项的物理地址,并进行物理内存保护机制检查,获取第一级表项的信息。物理内存保护机制检查是确认访问的权限,主要检查访问地址的是否违反了系统中配置的访问属性,例如访问地址是否有读、写、可执行权限等。此处主要是检查地址转换过程中访问的地址是否有读权限。
然后根据所述第一级表项的信息获取到下一级表项的物理地址,经过物理内存保护机制检查,获取下一级表项的信息;进而根据所述下一级表项的信息获取到再下一级表项的物理地址,循环直到获取叶子表项。如果某个页表项是有效的,并且r或者x为1,那么该页表项就是叶子表项。
最后根据所述叶子表项的页表级数获得所述叶子表项对应的所述第一页面的页面大小,从所述叶子表项中获得所述第一虚拟地址对应所述第一页面的物理页面地址和所述第一页面属性。例如在SV39中,如果第一级访问就获得了叶子表项,那么对应的物理页面是1GB大小。相应地,第二级访问获得叶子表项的话,页面大小为2MB,第三级访问获得的叶子表项的页面大小为4KB。
步骤S133:根据所述物理页面地址和所述第一页面属性获取所述第一虚拟地址经虚实地址转换后的物理地址,并对所述物理地址进行物理内存保护机制匹配检查,获取所述翻译结果。
在本发明实施例中,根据叶子表项中的第一页面的物理页面地址和页面大小可以得到该第一虚拟地址经过虚实地址转换后的物理地址,进而对物理地址进行物理内存保护机制匹配检查,获取翻译结果。
可选地,将物理地址送到PMP单元进行PMP匹配检查,该PMP匹配检查涉及到根据每个地址的匹配模式对多达64个PMPaddr寄存器进行物理地址匹配。根据PMP中保护区域和物理地址的所处的页面,有以下几种情况:
如果与所述物理地址匹配的物理内存保护区域完全覆盖了所述第一页面,则将所述第一页面属性与所述物理内存保护区域的属性合并,根据合并后的属性更新所述第一页面属性。参见图3,如果物理地址A所在的第一页面的页面大小为4KB,那么其对应的第一页面完全在PMP保护区域1之中。此时需要合并第一页面属性与该PMP保护区域1的属性,第一页面属性更新为合并后的属性。合并的方式为:对于X、W、R属性,只有第一页面属性和PMP保护区域1的属性同时允许,最终的属性才能允许,否则一律不允许。例如只有当第一页面属性允许该页面可执行(X=1),并且PMP保护区域1的属性中该页面也可以执行时(X=1),所返回的页面属性才能是可执行(X=1),否则返回该页面不可执行(X=0)。
如果所述第一页面的页面大小为4KB,且与所述物理地址匹配的物理内存保护区域部分覆盖所述第一页面,则获取所述物理地址所在的页面部分区域的起始地址和末尾地址以及与所述页面部分区域对应的第二页面属性。例如图3中,如果物理地址C所在的第一页面的页面大小为4KB,那么其对应的第一页面只有部分在PMP保护区域1中,如物理地址B处于PMP保护区域1中,而物理地址C不在任何PMP保护区域中。此时根据物理地址所在的页面部分区域是否在物理内存保护区域中可以分为两种情况。如果所述物理地址所在的页面部分区域在所述物理内存保护区域中,则获取所述页面部分区域的起始地址和末尾地址,将所述第一页面属性与所述物理内存保护区域的属性合并,并确定所述第二页面属性为合并后的属性。例如,如果执行匹配检查的物理地址为图3中的物理地址B,刚好处于PMP保护区域1中。此时需要合并PMP保护区域1的属性和第一页面属性,返回物理地址B所在页面部分区域在4KB的第一页面内部的起始地址和末尾地址。根据图3,物理地址B所在区域的起始地址为0,因为在4KB页面边界,末尾地址在PMP保护区域1的末尾。如果所述物理地址所在的页面部分区域不在所述物理内存保护区域中,则获取所述页面部分区域的起始地址和末尾地址,确定所述第二页面属性与所述第一页面属性相同。如果执行匹配检查的物理地址为图3中的物理地址C,刚好处于4KB页面中没有被PMP保护区域覆盖的地方。此时页面部分区域对应的第二页面属性即为第一页面属性,获取物理地址所在的页面部分区域在4KB的第一页面内部的起始地址和末尾地址。根据图3,物理地址C所在区域的起始地址为PMP保护区域1的末尾地址,末尾地址为PMP保护区域2的起始地址。
如果所述第一页面的页面大小大于4KB,且未被与所述物理地址匹配的物理内存保护区域完全覆盖,则对所述第一页面进行降级,获取包括所述物理地址的4KB大小的第二页面,根据所述第二页面与匹配的物理内存保护区域的重叠情况获取与所述第二页面对应的第三页面属性。例如,假设图3中的物理地址A、B、C所在的物理页面是2MB,那么先将其页面大小进行降级,降到4KB大小,获取包括待查询物理地址的第二页面,然后根据第二页面与匹配的物理内存保护区域的重叠情况获取与该第二页面对应的第三页面属性,具体可以按照前面两种情况进行处理以获取第三页面属性,在此不再赘述。如此返回的虚实转换信息中,页面大小会变为4KB,其余信息按前面两种情况返回。
如果所述第一页面未与任一物理内存保护区域有重叠,则确定所述翻译结果即为所述第一页面的物理页面地址和所述第一页面属性,即直接返回步骤S132中获取的经过虚实地址转换后的第一页面的物理页面地址和第一页面属性。
在本发明实施例中,翻译结果包括:虚实转换是否有效的信息;虚实转换后的物理地址、虚拟地址以及页面大小;页面属性;是否为页面部分区域的信息;页面部分区域的起始地址和末尾地址。
虚实转换是否有效的信息是指当前次虚拟地址翻译是否发生成功,如果不成功则需要返回相应的异常信息。虚实转换后的物理地址、虚拟地址以及页面大小具体是指如果未发生降级,则为第一页面的物理地址、虚拟地址以及页面大小;如果发生了降级,则为降级后的第二页面的物理地址、虚拟地址以及页面大小。物理地址和虚拟地址分别指的是起始地址。是否为页面部分区域的信息是指虚实转换后的物理地址所在页面的是否为4KB页面以内的页面部分区域,该页面称为微小页面。如果虚实转换后的物理地址所在页面的为4KB页面以内的页面部分区域,则翻译结果中还需要包括该页面部分区域的起始地址和末尾地址。
获得该翻译结果后,将该翻译结果返回TLB中,然后返回步骤S12,重新查询TLB,直至第一虚拟地址命中TLB。TLB页表项如图4所示,普通的TLB页表项只包含了有效位、虚拟地址、物理地址、页面大小、页面属性等信息,参见图4(a)。本发明实施例的TLB页表项中需要增加是否微小页面的标志,以及存储微小页面在4KB页面内的起始地址和末尾地址以供查询,参见图4(b)。
步骤S14:如果所述查询结果为命中所述翻译后备缓冲器,则获取翻译后的物理地址以及对应的访问权限信息。
在本发明实施例中,可选地,根据翻译后备缓冲器页表项中的物理地址和页面大小,结合所述第一虚拟地址,获取翻译后的所述物理地址;如果所述翻译后备缓冲器页表项指示为微小页面,则根据所述物理地址进行微小页面匹配,并根据匹配结果获取所述物理地址所在页面的页面属性,作为与所述物理地址对应的所述访问权限信息;否则直接获取翻译后备缓冲器页表项中记录的所述物理地址所在页面的页面属性,作为与所述物理地址对应的所述访问权限信息。如果翻译后备缓冲器页表项未指示为微小页面,如果未发生降级,则物理地址所在页面为第一页面,如果发生了降级,则物理地址所在页面为降级后的第二页面。
在本发明实施例中,翻译后备缓冲器页表项指示为微小页面,根据物理地址进行微小页面匹配时,如果所述物理地址位于所述微小页面的起始地址与末尾地址范围内,则返回所述物理地址和所述翻译后备缓冲器页表项中记录的所述微小页面的页面属性。该页面属性至少包括记录的访问权限信息。如果所述物理地址不在所述微小页面的起始地址与末尾地址范围内,则返回所述通过页表遍历部件根据所述第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将所述翻译结果返回所述翻译后备缓冲器,重新查询所述翻译后备缓冲器的步骤,即跳转至步骤S13。例如,图3中物理地址B在微小页面1中,如果查询物理地址D,会查询失败。跳转步骤S13后,最终会返回微小页面2。
值得注意的是,一般的物理地址访问都是大于一个字节的,所以该判断中需要根据访问的大小,判断所有访问都在微小页面内,才是匹配了该微小页面,否则都是判断为TLB缺失。
本发明实施例的获取指令或者数据的第一虚拟地址翻译后的物理地址和访问权限信息的方法完整过程如图5所示,包括:
步骤201:根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址。
具体地,取指令或者数据存取时,首先根据相应的访问指令的规则计算出指令或者数据对应的第一虚拟地址。
步骤202:查询TLB。
具体根据第一虚拟地址查询TLB,获取查询结果。
步骤203:判断是否命中TLB。如果否,则执行步骤204;如果是,则跳转执行步骤210。
如果查找到翻译后备缓冲器中有一个页表项的虚拟地址与第一虚拟地址相同,且页表项有效,则确定查询结果为第一虚拟地址命中翻译后备缓冲器;否则确定查询结果为未命中翻译后备缓冲器。如果没有命中,称为TLB失效。
步骤204:发送请求给PTW。
将TLB失效的第一虚拟地址发送给页表遍历部件PTW,以方便进行虚拟地址的翻译过程。
步骤205:进行正常地址转换,获取翻译后的第一页面的物理页面地址和第一页面属性。
应用PTW根据页表翻译的规则将第一虚拟地址翻译为对应的物理地址,根据翻译后的物理地址进行正常地址转换,获取翻译后的第一页面的物理页面地址和第一页面属性。可选地,首先根据第一虚拟地址获取第一级页表项的物理地址,并进行物理内存保护机制检查,获取第一级表项的信息;然后根据第一级表项的信息获取到下一级表项的物理地址,经过物理内存保护机制检查,获取下一级表项的信息;进而根据下一级表项的信息获取到再下一级表项的物理地址,循环直到获取叶子表项;最后根据叶子表项的页表级数获得叶子表项对应的第一页面的页面大小,从叶子表项中获得第一虚拟地址对应第一页面的物理页面地址和第一页面属性。第一页面属性包括第一页面中的物理地址的访问权限信息。
步骤206:对转换后的物理地址进行PMP匹配检查。
根据第一页面的物理页面地址和第一页面属性获取所述第一虚拟地址经虚实地址转换后的物理地址,对该物理地址进行PMP匹配检查,获取翻译结果。具体的PMP匹配检查过程参见前面步骤S133中的内容,在此不再赘述。
步骤207:获得最终页面大小和访问权限信息。
对该物理地址进行PMP匹配检查后获取的翻译结果包括最终页面大小和访问权限信息。最终页面可以是未降级的第一页面、发生降级后的4KB大小的第二页面以及微小页面的其中一个。
步骤208:返回翻译结果到TLB。然后跳转至执行步骤202。
将获取的最终页面以及对应的页面属性返回到TLB中,以便后续重新查询TLB时第一虚拟地址能命中TLB。
步骤209:获得翻译后的物理地址。
根据翻译后备缓冲器页表项中的物理地址和页面大小,结合所述第一虚拟地址,获取翻译后的物理地址。
步骤210:判断是否微小页面。如果是,则执行步骤212;如果否,则跳转执行步骤213。
根据翻译后备缓冲器页表项确定是否为微小页面。
步骤211:微小页面匹配检查。
确定物理地址是否位于所述微小页面的起始地址与末尾地址范围内,获取翻译后备缓冲器页表项中记录的微小页面的页面属性。
步骤212:获取访问权限信息。
根据翻译后备缓冲器页表项确定为微小页面,则获取经微小页面匹配检查后的物理地址所在微小页面的页面属性。如果翻译后备缓冲器页表项确定不是微小页面,则直接获取翻译后备缓冲器页表项中记录的所述物理地址所在页面的页面属性。页面属性中即包括物理地址的访问权限信息。
本发明实施例将PMP的检查逻辑统一设置在PTW部件,借用虚拟地址翻译的逻辑和数据通道,在进行虚拟地址转换到物理地址的同时,完成PMP的检查。由于大多数的虚实地址转换都能命中TLB,这就避免了大多数的PMP检查,节省了处理器执行的功耗。由于不用在多处设置PMP访问部件,节省了处理器逻辑资源,使得指令和数据物理内存访问路径上少了PMP检查这个步骤,缩短了流水线的延迟,提高了性能。
步骤S15:根据翻译后的物理地址和对应的访问权限信息执行所述访问指令。
在本发明实施例中,获取到指令或数据的第一虚拟地址翻译后的物理地址和对应的访问权限信息后,根据该物理地址和对应的访问权限信息执行对应的取指令或数据存取操作。
本发明通过根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址;根据第一虚拟地址查询翻译后备缓冲器,获取查询结果;如果查询结果为未命中翻译后备缓冲器,则通过页表查找部件根据第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将翻译结果返回翻译后备缓冲器,重新查询翻译后备缓冲器;如果查询结果为命中翻译后备缓冲器,则获取翻译后的物理地址以及对应的访问权限信息;根据翻译后的物理地址和对应的访问权限信息执行访问指令,能够减少指令执行路径上PMP查询带来的延迟,降低了功耗。
上述对本发明特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,本发明一个或多个实施例还提供了一种RISC-V处理器中物理内存保护机制的实现装置,如图6所示,包括:虚拟地址计算单元、TLB查询单元、未命中处理单元、命中处理单元以及指令执行单元。其中,
虚拟地址计算单元,用于根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址;
TLB查询单元,用于根据所述第一虚拟地址查询翻译后备缓冲器,获取查询结果;
未命中处理单元,用于如果所述查询结果为未命中所述翻译后备缓冲器,则通过页表遍历部件根据所述第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将所述翻译结果返回所述翻译后备缓冲器,重新查询所述翻译后备缓冲器;
命中处理单元,用于如果所述查询结果为命中所述翻译后备缓冲器,则获取翻译后的物理地址以及对应的访问权限信息;
指令执行单元,用于根据翻译后的物理地址和对应的访问权限信息执行所述访问指令。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本发明一个或多个实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,本发明一个或多个实施例还提供了一种电子设备,该电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一实施例所述的方法。
图7示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器701、存储器702、输入/输出接口703、通信接口704和总线705。其中处理器701、存储器702、输入/输出接口703和通信接口704通过总线705实现彼此之间在设备内部的通信连接。
处理器701可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本发明实施例所提供的技术方案。
存储器702可以采用ROM(Read Only Memory,只读存储器)、RAM(RandomAccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器702可以存储操作系统和其他应用程序,在通过软件或者固件来实现本发明实施例所提供的技术方案时,相关的程序代码保存在存储器702中,并由处理器701来调用执行。
输入/输出接口703用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口704用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线705包括一通路,在设备的各个组件(例如处理器701、存储器702、输入/输出接口703和通信接口704)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器701、存储器702、输入/输出接口703、通信接口704以及总线705,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本发明实施例方案所必需的组件,而不必包含图中所示的全部组件。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请中一个或多个实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
本申请中一个或多个实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请中一个或多个实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种处理器中物理内存保护机制的实现方法,其特征是,所述方法包括:
根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址;
根据所述第一虚拟地址查询翻译后备缓冲器,获取查询结果;
如果所述查询结果为未命中所述翻译后备缓冲器,则通过页表遍历部件根据所述第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将所述翻译结果返回所述翻译后备缓冲器,重新查询所述翻译后备缓冲器;
如果所述查询结果为命中所述翻译后备缓冲器,则获取翻译后的物理地址以及对应的访问权限信息;
根据翻译后的物理地址和对应的访问权限信息执行所述访问指令;
其中,所述根据所述第一虚拟地址查询翻译后备缓冲器,获取查询结果,包括:根据所述第一虚拟地址查询所述翻译后备缓冲器的所有页表项,所述页表项增加是否微小页面的标志,以及存储微小页面在4KB页面内的起始地址和末尾地址;如果查找到所述翻译后备缓冲器中有一个页表项的虚拟地址与所述第一虚拟地址相同,且所述页表项有效,则确定所述查询结果为所述第一虚拟地址命中所述翻译后备缓冲器;否则确定所述查询结果为未命中所述翻译后备缓冲器;
所述获取翻译后的物理地址以及对应的访问权限信息,包括:根据翻译后备缓冲器页表项中的物理地址和页面大小,结合所述第一虚拟地址,获取翻译后的所述物理地址;如果所述翻译后备缓冲器页表项指示为微小页面,则根据所述物理地址进行微小页面匹配,并根据匹配结果获取所述物理地址所在页面的页面属性,作为与所述物理地址对应的所述访问权限信息;否则直接获取翻译后备缓冲器页表项中记录的所述物理地址所在页面的页面属性,作为与所述物理地址对应的所述访问权限信息。
2.如权利要求1所述的方法,其特征是,所述通过页表遍历部件根据所述第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,包括:
将所述第一虚拟地址发送给所述页表遍历部件;
通过所述页表遍历部件根据所述第一虚拟地址获取经过虚实地址转换后的第一页面的物理页面地址和第一页面属性;
根据所述物理页面地址和所述页面属性获取所述第一虚拟地址经虚实地址转换后的物理地址,并对所述物理地址进行物理内存保护机制匹配检查,获取所述翻译结果。
3.如权利要求2所述的方法,其特征是,所述通过所述页表遍历部件根据所述第一虚拟地址获取经过虚实地址转换后的第一页面的物理页面地址和第一页面属性,包括:
根据所述第一虚拟地址获取第一级页表项的物理地址,并进行物理内存保护机制检查,获取第一级表项的信息;
根据所述第一级表项的信息获取到下一级表项的物理地址,经过物理内存保护机制检查,获取下一级表项的信息;
根据所述下一级表项的信息获取到再下一级表项的物理地址,循环直到获取叶子表项;
根据所述叶子表项的页表级数获得所述叶子表项对应的所述第一页面的页面大小,从所述叶子表项中获得所述第一虚拟地址对应所述第一页面的物理页面地址和所述第一页面属性。
4.如权利要求2所述的方法,其特征是,所述对所述物理地址进行物理内存保护机制匹配检查,获取所述翻译结果,包括:
如果与所述物理地址匹配的物理内存保护区域完全覆盖了所述第一页面,则将所述第一页面属性与所述物理内存保护区域的属性合并,根据合并后的属性更新所述第一页面属性;
如果所述第一页面的页面大小为4KB,且与所述物理地址匹配的物理内存保护区域部分覆盖所述第一页面,则获取所述物理地址所在的页面部分区域的起始地址和末尾地址以及与所述页面部分区域对应的第二页面属性;
如果所述第一页面的页面大小大于4KB,且未被与所述物理地址匹配的物理内存保护区域完全覆盖,则对所述第一页面进行降级,获取包括所述物理地址的4KB大小的第二页面,根据所述第二页面与匹配的物理内存保护区域的重叠情况获取与所述第二页面对应的第三页面属性;
如果所述第一页面未与任一物理内存保护区域有重叠,则确定所述翻译结果即为所述第一页面的物理页面地址和所述第一页面属性。
5.如权利要求4所述的方法,其特征是,所述获取所述物理地址所在的页面部分区域的起始地址和末尾地址以及与所述页面部分区域对应的第二页面属性,包括:
如果所述物理地址所在的页面部分区域在所述物理内存保护区域中,则获取所述页面部分区域的起始地址和末尾地址,将所述第一页面属性与所述物理内存保护区域的属性合并,并确定所述第二页面属性为合并后的属性;
如果所述物理地址所在的页面部分区域不在所述物理内存保护区域中,则获取所述页面部分区域的起始地址和末尾地址,确定所述第二页面属性与所述第一页面属性相同。
6.如权利要求4所述的方法,其特征是,所述翻译结果包括:
虚实转换是否有效的信息;
未发生降级的第一页面或者降级后的第二页面的物理地址、虚拟地址以及页面大小;
页面属性;
是否为页面部分区域的信息;
页面部分区域的起始地址和末尾地址。
7.一种处理器中物理内存保护机制的实现装置,其特征是,所述装置包括:
虚拟地址计算单元,用于根据取指令或者数据存取的访问指令计算指令或者数据的第一虚拟地址;
TLB查询单元,用于根据所述第一虚拟地址查询翻译后备缓冲器,获取查询结果;其中,根据所述第一虚拟地址查询所述翻译后备缓冲器的所有页表项,所述页表项增加是否微小页面的标志,以及存储微小页面在4KB页面内的起始地址和末尾地址;如果查找到所述翻译后备缓冲器中有一个页表项的虚拟地址与所述第一虚拟地址相同,且所述页表项有效,则确定所述查询结果为所述第一虚拟地址命中所述翻译后备缓冲器;否则确定所述查询结果为未命中所述翻译后备缓冲器;
未命中处理单元,用于如果所述查询结果为未命中所述翻译后备缓冲器,则通过页表遍历部件根据所述第一虚拟地址进行物理地址翻译及物理内存保护机制检查,获取翻译结果,将所述翻译结果返回所述翻译后备缓冲器,重新查询所述翻译后备缓冲器;
命中处理单元,用于如果所述查询结果为命中所述翻译后备缓冲器,则获取翻译后的物理地址以及对应的访问权限信息,其中,根据翻译后备缓冲器页表项中的物理地址和页面大小,结合所述第一虚拟地址,获取翻译后的所述物理地址;如果所述翻译后备缓冲器页表项指示为微小页面,则根据所述物理地址进行微小页面匹配,并根据匹配结果获取所述物理地址所在页面的页面属性,作为与所述物理地址对应的所述访问权限信息;否则直接获取翻译后备缓冲器页表项中记录的所述物理地址所在页面的页面属性,作为与所述物理地址对应的所述访问权限信息;
指令执行单元,用于根据翻译后的物理地址和对应的访问权限信息执行所述访问指令。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征是,所述处理器执行所述程序时实现如权利要求1至6任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111287046.2A CN113722246B (zh) | 2021-11-02 | 2021-11-02 | 处理器中物理内存保护机制的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111287046.2A CN113722246B (zh) | 2021-11-02 | 2021-11-02 | 处理器中物理内存保护机制的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113722246A CN113722246A (zh) | 2021-11-30 |
CN113722246B true CN113722246B (zh) | 2022-02-08 |
Family
ID=78686406
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111287046.2A Active CN113722246B (zh) | 2021-11-02 | 2021-11-02 | 处理器中物理内存保护机制的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113722246B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281720B (zh) * | 2021-12-14 | 2022-09-02 | 海光信息技术股份有限公司 | 处理器、用于处理器的地址翻译方法、电子设备 |
CN114691552A (zh) * | 2022-04-13 | 2022-07-01 | 山东浪潮科学研究院有限公司 | 一种应用于risc_v架构的低资源内存保护装置 |
CN114741740B (zh) * | 2022-06-09 | 2022-09-02 | 睿思芯科(深圳)技术有限公司 | 基于risc-v的物理内存保护方法、系统和相关设备 |
CN115080464B (zh) * | 2022-06-24 | 2023-07-07 | 海光信息技术股份有限公司 | 数据处理方法和数据处理装置 |
CN114827076B (zh) * | 2022-06-30 | 2022-09-13 | 沐曦集成电路(上海)有限公司 | 一种基于地址翻译单元的地址返回方法及系统 |
CN114995882B (zh) * | 2022-07-19 | 2022-11-04 | 沐曦集成电路(上海)有限公司 | 一种异构结构系统包处理的方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6604184B2 (en) * | 1999-06-30 | 2003-08-05 | Intel Corporation | Virtual memory mapping using region-based page tables |
KR100772863B1 (ko) * | 2006-01-13 | 2007-11-02 | 삼성전자주식회사 | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 |
KR20120068573A (ko) * | 2010-12-17 | 2012-06-27 | 삼성전자주식회사 | 심리스 애플리케이션 통합 장치 및 방법 |
KR102002900B1 (ko) * | 2013-01-07 | 2019-07-23 | 삼성전자 주식회사 | 메모리 관리 유닛을 포함하는 시스템 온 칩 및 그 메모리 주소 변환 방법 |
KR20140099135A (ko) * | 2013-02-01 | 2014-08-11 | 삼성전자주식회사 | 이미지의 부분 프레임을 업데이트 하는 시스템 온 칩 및 그 동작방법 |
KR102069273B1 (ko) * | 2013-03-11 | 2020-01-22 | 삼성전자주식회사 | 시스템 온 칩 및 그 동작방법 |
US10255196B2 (en) * | 2015-12-22 | 2019-04-09 | Intel Corporation | Method and apparatus for sub-page write protection |
CN107168801A (zh) * | 2017-05-12 | 2017-09-15 | 南京大学 | 基于多内核页表的内核动态数据隔离以及保护技术 |
CN109558211B (zh) * | 2018-11-27 | 2023-03-21 | 上海瓶钵信息科技有限公司 | 保护可信应用与普通应用的交互完整性和保密性的方法 |
CN111400702B (zh) * | 2020-03-24 | 2023-06-27 | 上海瓶钵信息科技有限公司 | 一种虚拟化的操作系统内核保护方法 |
CN111651778B (zh) * | 2020-05-26 | 2023-05-05 | 上海交通大学 | 基于risc-v指令架构的物理内存隔离方法 |
-
2021
- 2021-11-02 CN CN202111287046.2A patent/CN113722246B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113722246A (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113722246B (zh) | 处理器中物理内存保护机制的实现方法及装置 | |
US8151085B2 (en) | Method for address translation in virtual machines | |
US8296518B2 (en) | Arithmetic processing apparatus and method | |
US8190652B2 (en) | Achieving coherence between dynamically optimized code and original code | |
US20210089468A1 (en) | Memory management unit, address translation method, and processor | |
US11775445B2 (en) | Translation support for a virtual cache | |
US10810134B2 (en) | Sharing virtual and real translations in a virtual cache | |
JP2011227880A (ja) | プレロード命令制御 | |
US20140281137A1 (en) | Method and device implementing execute-only memory protection | |
US8190853B2 (en) | Calculator and TLB control method | |
US20230289295A1 (en) | Virtual Memory Management Method and Apparatus Supporting Physical Addresses Larger Than Virtual Addresses | |
CN115827502A (zh) | 一种内存访问系统、方法及介质 | |
CN114238167B (zh) | 信息预取方法、处理器、电子设备 | |
US11989136B2 (en) | Methods and systems for translating virtual addresses in a virtual memory based system | |
US20040133556A1 (en) | Method and apparatus for skewing a bi-directional object layout to improve cache performance | |
US9495305B1 (en) | Detecting pointer errors for memory protection | |
CN114780447A (zh) | 内存数据读取方法、装置、设备及存储介质 | |
US11461237B2 (en) | Methods and systems for translating virtual addresses in a virtual memory based system | |
CN111274166B (zh) | Tlb的预填及锁定方法和装置 | |
JP2003196157A (ja) | プロセッサ装置及びメモリ管理方法 | |
CN114925002A (zh) | 电子装置、电子设备和地址转换方法 | |
CN115080464A (zh) | 数据处理方法和数据处理装置 | |
CN115080463A (zh) | 一种内存管理方法、装置、电子设备及存储介质 | |
CN117909261A (zh) | 内存管理方法、系统、处理器及电子设备 | |
CN115408010A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220530 Address after: 201210 room 2fa222, block a, building 1, No. 800, Naxian Road, Pudong New Area, Shanghai Patentee after: Chaorui Technology (Shanghai) Co.,Ltd. Address before: 410006 ka-657, 7th floor, Yannong complex building, Dongfanghong community, No. 459, lushong Road, high tech Development Zone, Changsha, Hunan Patentee before: Transcendence information technology (Changsha) Co.,Ltd. |