CN111868700B - 存储器管理系统、存储器管理方法以及信息处理设备 - Google Patents
存储器管理系统、存储器管理方法以及信息处理设备 Download PDFInfo
- Publication number
- CN111868700B CN111868700B CN201880090079.8A CN201880090079A CN111868700B CN 111868700 B CN111868700 B CN 111868700B CN 201880090079 A CN201880090079 A CN 201880090079A CN 111868700 B CN111868700 B CN 111868700B
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- processor core
- state
- storage unit
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 453
- 238000007726 management method Methods 0.000 title claims description 83
- 230000010365 information processing Effects 0.000 title claims description 10
- 238000000034 method Methods 0.000 claims description 111
- 238000013519 translation Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 description 45
- 238000012545 processing Methods 0.000 description 33
- 230000014616 translation Effects 0.000 description 13
- 230000008859 change Effects 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 11
- 230000004048 modification Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002730 additional effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
-
- 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/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1491—Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
Abstract
提供了一种存储器管理系统,该系统基于虚拟地址高速缓存方案有效地保护高速缓冲存储器中的数据。存储器管理系统包括:高速缓冲存储器,临时存储处理器内核请求对其进行存储器访问的数据;状态存储单元,存储与存储器访问请求同时从处理器内核发送的安全状态;以及存储器管理单元,管理对主存储器的访问。如果当处理器内核请求存储器访问时安全状态已改变,则对命中的高速缓存行执行高速缓存刷新。
Description
技术领域
本说明书中公开的技术涉及采用虚拟地址高速缓存方法的存储器管理系统、存储器管理方法以及信息处理设备。
背景技术
存储器管理单元(MMU)设置在通常的存储器系统中的处理器与物理存储器之间。MMU对整个虚拟地址空间执行这种地址转换,以实现针对每个处理的虚拟地址空间,并且还提供等于或大于实际存储器容量的虚拟存储器。
此外,为了解决处理器中存储器速度不足的问题,对存储器进行了分层处理。具体地,作为初级高速缓存,在与处理器相同的芯片中内置高速且小容量的存储器。然后,在处理器的附近设置昂贵且高速的静态随机存取存储器(SRAM)作为次级高速缓冲。此外,设置有包括速度相对较低且廉价的动态RAM(DRAM)的主存储器。
这里,作为处理器参考高速缓冲存储器的方法,可以引用用于利用转换后的物理地址进行搜索的物理地址高速缓存方法和用于利用虚拟地址进行搜索的虚拟地址高速缓存方法。在采用物理地址高速缓存方法的存储器系统中,MMU设置在处理器与高速缓冲存储器之间,并且地址转换在处理器每次访问高速缓存时执行。另一方面,在采用虚拟地址高速缓存方法的存储器系统中,MMU设置在高速缓冲存储器与主存储器之间,并且处理器通过使用虚拟地址来参考高速缓冲存储器。仅在高速缓存未命中的情况下,MMU才执行地址转换并且访问主存储器。
物理地址高速缓存方法主要用于具有高速缓冲存储器的存储器系统中。然而,物理地址高速缓存方法的问题在于,处理器每次访问高速缓冲存储器时都在MMU中执行地址转换处理,导致了功率效率和电路速度的降低。
另一方面,在虚拟地址高速缓存方法中,仅在高速缓存未命中的情况下,才在MMU中执行地址转换和高速缓冲存储器的激活。因此,降低了功耗。因此,对于需要用电池运行许多小时的超低功耗物联网(IoT)和需要低功耗的可穿戴装置,虚拟地址高速缓存方法被认为是有前途的。
现有技术文献
专利文献
专利文献1:日本专利申请公开号2014-78248
专利文献2:日本专利申请公开号2006-155516
发明内容
本发明要解决的问题
本说明书中公开的技术的目的是提供一种存储器管理系统、存储器管理方法以及信息处理设备,该存储器管理系统有效地保护采用虚拟地址高速缓存方法的高速缓冲存储器中的数据。
问题的解决方案
本说明书中公开的技术的第一方面是一种存储器管理系统,包括:
高速缓冲存储器,临时存储处理器内核请求对其进行存储器访问的数据;
状态存储单元,存储与来自所述处理器内核的所述存储器访问的请求同时传送的安全状态;以及
存储器管理单元,管理对主存储器的访问。高速缓冲存储器采用虚拟地址高速缓存方式。
注意,这里使用的术语“系统”是指多个装置(或实现具体功能的功能模块)的逻辑集合,并且每个装置或功能模块是否在单个壳体中并不重要。
状态存储单元包括以下中的任一项:所述高速缓冲存储器中的标签存储器、所述高速缓冲存储器中的与所述标签存储器分开设置的寄存器、以及安装在高速缓存行主体外部的存储器或寄存器,并且所述状态存储单元存储针对所述高速缓冲存储器的每一行的安全状态。
根据第一方面的存储器管理系统被配置成使得在处理器内核请求存储器访问的安全状态与存储在状态存储单元中的安全状态不匹配的情况下,对命中该请求的高速缓存行执行高速缓存刷新。
可替代地,根据第一方面的存储器管理系统被配置成:使得在处理器内核请求存储器访问的安全状态与存储在状态存储单元中的安全状态不匹配的情况下,由存储器管理单元执行保护检查,并且在允许存储器访问请求的情况下,访问命中该请求的高速缓存行并且更新存储在状态存储单元中的安全状态。
可替代地,根据第一方面的存储器管理系统被配置成:使得在虽然处理器内核请求存储器访问的安全状态与存储在状态存储单元中的安全状态不匹配、但是安全状态之间的差异满足高速缓冲存储器内的预定规则的情况下,访问命中该请求的高速缓存行并且更新存储在状态存储单元中的安全状态。
此外,本说明书中公开的技术的第二方面是一种存储器管理方法,包括:
从主存储器中读取由处理器内核请求对其进行存储器访问的数据并且将该数据临时存储在高速缓冲存储器中的步骤;
状态存储步骤,存储与来自处理器内核的存储器访问请求同时传送的安全状态;以及
控制步骤,基于处理器内核请求存储器访问的安全状态与存储在状态存储单元中的安全状态进行比较的结果,控制对高速缓冲存储器和主存储器的访问。
此外,本说明书中公开的技术的第三方面是一种信息处理设备,包括:
处理器内核;
主存储器;
高速缓冲存储器,临时存储处理器内核请求对其进行存储器访问的数据;
状态存储单元,存储与来自处理器内核的存储器访问请求同时传送的安全状态;以及
存储器管理单元,管理对主存储器的访问。
本发明的效果
根据本说明书中公开的技术,可以提供一种存储器管理系统、存储器管理方法以及信息处理设备。存储器管理系统可以利用存储在高速缓冲存储器中的少量信息来保护采用虚拟地址高速缓存方法的高速缓冲存储器中的数据。
注意,在本说明书中描述的效果仅仅是示例,并且本发明的效果不限于此。此外,本发明可呈现除上述效果之外的附加效果。
本说明书中公开的技术的其它目的、特征以及优点将从稍后描述的实施方式以及基于附图的更详细描述中显而易见。
附图说明
[图1]图1是示意性地示出包括嵌入式装置的系统的配置示例的图。
[图2]图2是示出感测装置100的硬件配置的示例的图。
[图3]图3是示意性地示出采用虚拟地址高速缓存方法的存储器管理系统1的配置示例的图。
[图4]图4是示出与来自处理器内核10的存储器访问请求同时通信的安全状态如何存储在高速缓冲存储器20中的图。
[图5]图5是示出用于控制存储器管理系统1中的存储器访问的过程的流程图(前半部分)。
[图6]图6是示出用于控制存储器管理系统1中的存储器访问的过程的流程图(后半部分)。
[图7]图7是示出高速缓冲存储器20的实现示例的图,该高速缓冲存储器20被配置为在标签位中存储每个高速缓存行的安全状态。
[图8]图8是示出用于控制存储器管理系统1中的存储器访问的过程的可变形性的流程图(前半部分)。
[图9]图9是示出用于控制存储器管理系统1中的存储器访问的过程的修改例的流程图(后半部分)。
[图10]图10是示出用于控制存储器管理系统1中的存储器访问的过程的另一修改例的流程图(前半部分)。
[图11]图11是示出用于控制存储器管理系统1中的存储器访问的过程的另一修改例的流程图(后半部分)。
[图12]图12是示出如何将许可信息从MMU 30复制到高速缓冲存储器20的图。
具体实施方式
以下,将参考附图详细描述本说明书中公开的技术的实施方式。
存在在要由处理器处理的每段数据中设定许可信息的情况。许可信息包括例如安全状态或保护属性(诸如允许访问的用户或允许的处理(读取、写入、执行等)。在这种情况下,处理器每次访问存储器时有必要执行许可检查以保护存储器。
例如,MMU包括存储用于以页为单位将虚拟地址转换为物理地址的信息的转换旁路缓冲器(TLB),并且可以保存关于TLB中的每个条目的相对应的页的许可信息作为页属性。因此,在物理地址高速缓存方法中,处理器内核每次访问高速缓冲存储器时许可检查都可以容易地被执行。
另一方面,在虚拟地址高速缓存方法中,MMU设置在高速缓冲存储器的后一级处(如上所述)。为此,当处理器内核访问高速缓冲存储器时,MMU不能执行许可检查。因此,需要用另一种方法(即,不依赖于MMU的方法)来保护存储器。
例如,已提出了一种处理系统,当数据经由MMU高速缓存在高速缓冲存储器中作为高速缓存未命中的结果时,该处理系统针对每个高速缓存行存储行数据的页属性(例如,参见专利文献1)。根据该处理系统,可以基于高速缓冲存储器中的信息在高速缓存命中时执行许可检查,从而在虚拟地址高速缓存方法中可以容易地实现存储器保护。
然而,在该处理系统中,用于保存高速缓冲存储器中的每行的许可信息的副本的容量需要分开地设置在高速缓冲存储器中。通常,高速缓存的行的大小小于作为地址转换单位的页的大小。因此,复制后的许可信息具有冗余性。例如,假设高速缓存行为16字节、页大小为16千字节、并且高速缓冲存储器的总容量为16千字节。在这种存储器配置的情况下,即使高速缓冲存储器中的所有数据都是与相同页相对应的数据,但也需要在高速缓冲存储器中保存相同许可信息的1024个副本,从而导致冗余性。
此外,考虑到该处理系统需要边带信号和用于将许可信息从MMU发送到高速缓冲存储器的控制电路。通常,仅存在从高速缓冲存储器到MMU的单向通信。因此,设置这种边带电路和控制电路增加了用于从MMU到高速缓冲存储器的信息通信的电路成本。
另外,已提出了一种存储器管理系统,该存储器管理系统被配置成使得当访问权改变时,高速缓冲存储器的内容刷新,使高速缓存未命中在下一次访问时发生,并且需要从物理存储器中获得数据(例如,参见专利文献2)。根据该存储器管理系统,在访问权改变之后,可以经由MMU适当地执行许可检查,使数据可以从主存储器中获得。然而,在这种存储器管理系统中,需要用外部信号刷新高速缓冲存储器中的整个数据一次,以使高速缓冲存储器中的数据与主存储器中的数据同步。
因此,在本说明书中以下提出的是一种存储器管理系统,该存储器管理系统能够以存储在高速缓冲存储器中的少量信息,在采用虚拟地址高速缓存方法的高速缓冲存储器中实现对数据的保护。
图1示意性地示出包括嵌入式装置的系统的配置示例,本说明书中公开的存储器管理系统可以应用于该嵌入式装置。所示的系统包括感测装置100、基站200以及服务器202。感测装置100与嵌入式装置相对应。服务器202安装在云201上。感测装置100可以无线连接到基站200并且经由云201访问服务器202。
感测装置100包括中央处理单元(CPU)101、MMU 102、诸如静态随机存取存储器(RAM)(SRAM)103和闪存104的存储器、传感器105以及通信模块106。感测装置100是由电池107驱动的装置。注意,采用虚拟地址高速缓存方法的高速缓冲存储器(L1高速缓存或L2高速缓存)设置在CPU 101与MMU 102之间,但是在图1中被省略了以简化绘图。注意,电池107可以是可再充电的锂离子电池或不可再充电的电池。
例如,感测装置100通过由佩戴者佩戴来使用。CPU 101基于传感器105的检测信号来分析佩戴者的行为(停止、行走、跑步等)。然后,分析结果从通信模块106无线地发送到基站200,并且经由云201记录在服务器202上。服务器202使用从感测装置100接收到的数据来观看佩戴者等。
图2示出感测装置100的硬件配置示例作为嵌入式装置的示例。
CPU 101经由MMU 102连接到系统总线110。此外,诸如SRAM 103、闪存104、传感器105以及通信模块106的装置连接到系统总线110。
闪存104存储用于基于例如传感器105的信号来估计佩戴者的行为的应用程序、当执行该应用程序时要使用的库、以及诸如用于估计佩戴者的行为的行为估计字典的数据。此外,传感器105包括诸如加速度传感器、气压传感器、陀螺仪、全球定位系统(GPS)、飞行时间(TOF)图像距离传感器、以及光检测和测距(LIDAR)传感器的一个或多个传感器装置。
连接到系统总线110的这些装置被设置在由MMU 102对其执行地址转换的物理地址空间中。SRAM 103设置在该物理地址空间中。此外,闪存104设置在该物理地址空间中,使得闪存104的内容从CPU 101或MMU 102中直接可见。此外,通信模块106和传感器105中所包括的各种传感器装置的I/O端口设置在物理地址空间中。
感测装置100需要用电池107操作许多小时。因此,降低功耗是必要的。因此,为了提高功率效率,应用了其中仅在高速缓存未命中的情况下在MMU中执行地址转换的虚拟地址高速缓存方法。
图3示意性地示出采用虚拟地址高速缓存方法的存储器管理系统1的配置示例,该系统应用于感测装置100。所示的存储器管理系统1包括处理器内核10、高速缓冲存储器20、存储器管理单元(MMU)30、以及作为物理存储器的主存储器40。首先,将简要描述存储器管理系统1中的存储器访问操作。
高速缓冲存储器20采用虚拟地址高速缓存方法,使得处理器10通过使用虚拟地址来访问高速缓冲存储器20。注意,高速缓冲存储器20可以是L1高速缓存或L2高速缓存。
在高速缓存命中针对由处理器内核10所请求的虚拟地址发生的情况下,高速缓冲存储器20对相对应的高速缓存行执行读取或写入操作。此外,在高速缓存未命中针对处理器内核10所请求的虚拟地址发生的情况下,高速缓冲存储器20通过使用虚拟地址向MMU 30发出存储器请求。注意,后面将描述与高速缓冲存储器20和MMU 30有关的存储器访问控制的流程的细节。
MMU 30包括转换旁路缓冲器(TLB)31和页遍历机构(page walk mechanism)32。TLB 31用于保存用于以页为单位将虚拟地址转换为物理地址的信息。此外,页遍历机构32具有参考位于主存储器中的页表41的功能。页表41包含以页为单位描述的虚拟地址与物理地址之间的对应关系。
在TLB 31中查找到与处理器内核10所请求的虚拟地址相对应的条目(然而,在高速缓存未命中的情况下)的情况下(即,在发生TLB命中的情况下),MMU 30使用条目的信息将虚拟地址转换为物理地址,并通过使用转换后的物理地址访问主存储器40。
另一方面,在TLB 31中未查找到与处理器内核10所请求的虚拟地址相对应的条目的情况下(即,在发生TLB未命中的情况下),页遍历机构32搜索页表41,并且查找到关于与所请求的虚拟地址相对应的页的物理地址的信息,使得页遍历机构32在TLB 31中创建用于映射所请求访问的虚拟地址和物理地址的新条目。此后,MMU 30可以再次执行地址转换处理,以将所请求的虚拟地址转换为物理地址。
接下来,将考虑采用虚拟地址高速缓存方法的存储器管理系统1中的数据保护。
在采用物理地址高速缓存方法的高速缓冲存储器中,相对应的页上的许可信息被保存为TLB中的每个条目的页属性。这使得MMU能够在处理器内核访问高速缓冲存储器时执行许可检查,使得地址转换仅在允许访问的情况下执行。结果,可以在地址转换时保护数据。另一方面,在虚拟地址高速缓存方法中,处理器内核可以直接访问高速缓冲存储器,而不涉及MMU。因此,当处理器内核访问高速缓冲存储器时,许可检查不能由MMU执行。因此,需要通过不依赖于MMU的方法来保护存储器(如上所述)。
例如,下面的方法可以被引用为这种方法。当高速缓存未命中发生并且数据经由MMU 30被高速缓存在高速缓冲存储器20中时,如图12所示,作为页属性存储在TLB 31中的相对应的TLB条目中的许可信息被复制到高速缓冲存储器20中的每行。
在图12中,当处理器内核10请求存储器访问时,处理的安全状态与所请求的虚拟地址同时被传送到高速缓冲存储器20。在所示的示例中,多个与安全有关的参数的八个组合被表示为3位信息。参数的示例包括处理的类型(该处理是“开发者”还是“专有”的处理)、处理的模式(该处理在“用户”模式还是“特权”模式下执行)、以及所允许的处理(“读”、“写”等)。
另一方面,MMU 30在TLB 31中的每个条目的相对应的页上保存许可信息。具体地,许可信息通过使用八个标志A至H针对上述八个具有1位的安全状态(即,总共8位)中的每个指示存储器访问权限(即,是否允许访问或保护存储器)。在TLB 31中的每个条目中,与相对应的物理页的安全状态相对应的许可信息以及用于将相对应的虚拟地址转换为物理地址的信息(T)以指示是否允许存储器访问的八个标志A至H的形式保存。例如,标志A用1或0指示是否针对安全状态(开发者、用户、读取)允许对相对应的页进行存储器访问。类似地,标志B指示是否针对安全状态(开发者、用户、写入)允许对相对应的页进行存储器访问,并且标志C指示是否针对安全状态(开发者、特权、读取)允许对相对应的页进行存储器访问。然后,在图12所示的示例中,关于相对应的页中的数据的8位许可信息(标志A至H)被复制到高速缓冲存储器20的每个高速缓存行。
当执行处理的处理器内核10请求存储器访问时,高速缓冲存储器20可以参考从MMU 30复制的8位许可信息当中的与存储器访问请求同时从处理器内核10传送的安全状态相对应的标志来确定是允许存储器访问还是保护存储器。例如,当正在安全状态“A”下执行的处理请求存储器访问时,MMU 30可以参考保存在与所请求的虚拟地址相对应的TLB条目中的许可信息中的标志“A”来确定是否允许访问。
在图12所示的示例中,MMU 30的TLB 31中的每个条目作为页属性保存关于相对应的页中的数据的8位许可信息(标志A至H)以及用于以页为单位将虚拟地址转换为物理地址的信息(T)。例如,假设高速缓存行为16字节、页大小为16千字节、高速缓冲存储器20的总容量为16千字节。在这种存储器配置的情况下,即使高速缓冲存储器20中的所有数据都是与相同页相对应的数据,但高速缓冲存储器20也需要具有1024×8位的存储器容量来复制相同的许可信息,从而导致冗余性。
简言之,如图12所示,通过将MMU 30中的许可信息复制到高速缓冲存储器20来保护存储器的方法的问题在于,用于保存高速缓冲存储器20中的每行的许可信息的副本的容量需要分开地设置在高速缓冲存储器20中。此外,高速缓冲存储器20的行大小通常小于作为地址转换单位的页的大小。因此,所复制的信息具有冗余性。此外,需要设置(反向)边带信号和用于将许可信息从MMU 30发送到高速缓冲存储器20的控制电路。
因此,本实施方式通过在高速缓冲存储器20中以高速缓存行为单位存储与来自处理器内核10的存储器访问请求同时传送的安全状态,而不是使用将以页为单位定义的许可信息复制到高速缓冲存储器20的方法(参见图12),来实现采用虚拟地址高速缓存方法的高速缓冲存储器中的数据保护。
图4示出与来自处理器内核10的存储器访问请求同时传送的安全状态如何以高速缓存行为单位存储在高速缓冲存储器20中。
当处理器内核10请求存储器访问时,处理的安全状态与所请求的虚拟地址同时被发送到高速缓冲存储器20。在所示的示例中,多个与安全有关的参数的八个组合被表示为3位信息。参数的示例包括处理的类型(该处理是“开发者”还是“专有”的处理)、进程的模式(该处理是在“用户”模式还是“特权”模式下执行)、以及所允许的处理(“读”、“写”等)。高速缓冲存储器20存储关于与已被请求访问的高速缓存行相关联的安全状态的3位信息。注意,除了用于发出存储器访问请求的地址总线之外,处理器内核10和高速缓冲存储器20还通过用于传送安全状态的3位边带信号连接。
另一方面,MMU 30在TLB 31中的每个条目的相对应的页上保存许可信息。在图4所示的示例中,许可信息通过使用八个标志A至H针对上述八个具有1位的安全状态(即,总共8位)中的每个来指示存储器访问权限(即,是否允许访问或保护存储器)。在TLB 31中的每个条目中,与相对应的物理页的安全状态相对应的许可信息以及用于将相对应的虚拟地址转换为物理地址的信息(T)以指示是否允许访问的八个标志A至H的形式保存。
例如,标志A用1或0指示是否允许针对安全状态(开发者、用户、读取)对相对应的页进行存储器访问。类似地,标志B指示是否针对安全状态(开发者、用户、写入)允许对相对应的页进行存储器访问,并且标志C指示是否针对安全状态(开发者、特权、读取)是否允许对相对应的页进行存储器访问。
当执行处理的处理器内核10请求存储器访问时,处理器内核10首先访问高速缓冲存储器20。在基于所请求的虚拟地址参考的数据被高速缓存在高速缓存行(高速缓存命中)中的情况下,将与其上发生高速缓存命中的高速缓存行相关联地存储的安全状态与与存储器访问请求同时从处理器内核10传送的处理的安全状态进行比较。因此,处理器内核10可以直接访问高速缓冲存储器20中高速缓存的存储器的数据,而不涉及MMU 30。仅在发生高速缓存未命中的情况下,经由MMU 30使用TLB 31中的许可参考功能。
虽然每个页的许可信息由8位表示(如上所述),但安全状态由3位表示。因此,可以理解,保存每个高速缓存行的安全状态而不是许可信息,显著地减少了存储器容量。此外,安全状态以及来自处理器内核10的正常存储器访问请求被发送到高速缓冲存储器20。因此,不需要反向边带信号和用于在高速缓冲存储器20中保存安全状态的控制电路。
在上述示例中,每个安全状态的许可信息由1位表示。例如,“1”表示允许安全状态,而“0”表示拒绝安全状态。作为修改例,每个安全状态的许可信息可以由2位或更多表示。作为分配更多位的结果,可以根据未授权访问的级别来定义详细的系统操作。例如,作为将2位用于关于安全状态“A”的许可信息的结果,可以定义如下表1所示的详细系统操作。
[表1]
注意,作为用于在高速缓冲存储器20中存储每个高速缓存行的安全状态的方法,例如,可以引用其中扩展与每个高速缓存行相关联的标签区域的方法、寄存器或存储器与标签分开安装的方法、以及保持每个高速缓存行的安全状态的寄存器或存储器安装在高速缓冲存储器20外部的方法。
图5和图6分别以流程图的形式示出用于控制采用虚拟地址高速缓存方法的存储器管理系统1中的存储器访问的过程。注意,高速缓冲存储器20被配置为使得安全状态以高速缓存行为单位存储在高速缓冲存储器20中。此外,在图5和图6所示的流程图中,要由MMU30执行的处理步骤以灰色示出,而其它处理步骤在高速缓冲存储器20中执行。
该过程响应于处理器内核10发出的存储器访问请求而开始。
首先,搜索高速缓冲存储器20以检查与处理器内核10所请求的虚拟地址相对应的高速缓存行是否存在(即,高速缓存命中是否发生)(步骤S501)。
在高速缓存命中发生的情况下(步骤S501中的“是”),进一步检查与存储器访问请求同时传送的安全状态是否与存储在命中该请求的高速缓存行中的安全状态相同(步骤S502)。
然后,如果安全状态未改变(步骤S502中的“是”),则根据存储器访问请求对高速缓存行执行读取处理或写入处理(步骤S503),并且该处理结束。
因此,只要处理器内核10的处理的安全状态未改变,就可以继续访问存储在高速缓冲存储器20中的数据,而无需由MMU 30进行许可检查。
另一方面,当安全状态中存在改变时(步骤S502中的“否”),处理如下进行。当其上已发生高速缓存命中的行为“脏(dirty)”时(即,当高速缓存行的数据已更新时)(步骤S504中的“是”),在数据以高速缓存行所存储的安全状态被写回至主存储器40(步骤S505)。换句话说,当其中处理器内核10请求存储器访问的安全状态中存在改变时,不管数据是否已更新,都执行高速缓存刷新。
此外,在高速缓存未命中发生在处理器内核10所请求的虚拟地址上的情况下(步骤S501中的“否”),随后检查高速缓冲存储器20是否已满并且是否需要替换(步骤S506)。在需要替换的情况下(步骤S506中的“是”),根据预定的替换算法来确定要丢弃的数据(即,牺牲高速缓存行)。然后,当牺牲行为“脏”时(即,当数据已更新时)(步骤S507中的“是”),牺牲行的数据以牺牲行所存储的安全状态被写回至主存储器40(步骤S508)。
然后,当高速缓存未命中发生在处理器内核10所请求的虚拟地址上时(步骤S501中的“否”),或者在处理器内核10的处理的安全状态已改变的情况下(步骤S502中的“否”),MMU 30将虚拟地址转换为物理地址,并且另外,参考TLB 31中的相对应的条目上的许可信息,检查是否允许来自处理器内核10的存储器访问请求(步骤S509)。
本说明书中公开的技术在其中MMU 30参考TLB 31以执行地址转换的机构和其中页遍历机构32搜索主存储器40中的页表41以查找与所请求的虚拟地址相对应的页的物理地址的信息并在TLB未命中发生时创建新的TLB条目的机构方面与传统技术类似。因此,这里省略详细描述。
此外,在处理步骤S509中,MMU 30可以参考存储在与所请求的虚拟地址(如上所述)相对应的TLB条目中的8位许可信息当中的与存储器访问请求同时从处理器内核10传送的安全状态相对应的标志,来确定是允许存储器访问还是保护存储器。
这里,在MMU 30允许来自处理器内核10的存储器访问请求的情况下(步骤S509中的“是”),MMU 30从主存储器40中的相对应的物理地址读取数据(步骤S510)。然后,将读取出的数据写入高速缓冲存储器20中的空闲行或牺牲行(步骤S511)。此外,更新高速缓存行的标签信息,并且另外,写入高速缓存行中的数据的安全状态存储在标签中(步骤S512),并且处理结束。
此外,在MMU 30未允许来自处理器内核10的存储器访问请求的情况下(步骤S509中的“否”),MMU 30将保护错误返回至作为访问请求源的处理器内核10(步骤S513),并处理结束。
根据图5和图6所示的存储器访问过程,可以通过在高速缓冲存储器20中存储少量信息(即,存储安全状态)来保护采用虚拟地址高速缓存方法的高速缓冲存储器20中的数据。
此外,根据图5和图6所示的存储器访问过程,只要在处理器内核10中执行的处理的安全状态未改变,则可以继续使用在一旦高速缓存未命中发生时就存储在高速缓冲存储器20中的数据,而无需MMU 30的许可检查。结果,在存储器管理系统1中提高了功率效率和电路速度。此外,当处理器内核10中要执行的处理的安全状态存在改变时,高速缓冲存储器20检测该改变,并刷新最小旧数据。然后,MMU 30再次执行在高速缓存未命中时要执行的处理。此时,还执行许可检查。
扩展了与每个高速缓存行相关联的标签区域的方法可以被引用以作为用于在高速缓冲存储器20中存储每个高速缓存行的安全状态的方法。
图7示出高速缓冲存储器20的实现示例,高速缓冲存储器20被配置为将每个高速缓存行的安全状态存储在标签位中。注意,虽然为了简化图而示出了具有单向配置的高速缓冲存储器,但是可以类似地采用双向配置或另一种多路配置。
所示的高速缓冲存储器20包括数据阵列71和标签阵列72。数据阵列71包括高速缓存行组。标签阵列72包括与相应高速缓存行相对应的标签存储器。
在所示示例中,数据阵列71包括数据RAM,在该数据RAM中0至63的64行构成单个存储体。再者,四个字构成单个行。单个字与32位相对应。因此,单个行与128位相对应。
标签阵列72包括标签RAM,该标签RAM包括与数据阵列71的相应行相对应的总共64个标签存储器0至63。单个标签包括具有长度为22位的标签位。
数据阵列71的每行分配有数据RAM地址。还有,标签阵列72的每个标签分配有标签RAM地址。数据RAM地址与标签RAM地址之间存在对应关系。
每个标签包括有效位和脏位(dirty bit,页面重写标志位)。有效位指示相对应的高速缓存行是有效还是无效。脏位指示高速缓存行上的数据是否已更新。在本实施方式中,标签还为安全位分配3位,以便指示安全状态。
通过适当地定义安全位和许可信息,可以以必要的粒度实现高速缓冲存储器中的数据的安全(参见,例如,图4)。此外,即使在仅具有简单安全功能的处理器内核中,通过组合操作系统和软件也可以实现高级安全模型。
此外,作为用于在高速缓冲存储器20中存储每个高速缓存行的安全状态的其他方法,可以引用例如其中寄存器或存储器与标签分开安装的方法,和其中保持每个高速缓存行的安全状态的寄存器或存储器安装在高速缓存行外部的方法(以上均未示出)。
注意,当存储每个高速缓存行的安全状态时,可以执行位压缩。在上述示例中,为安全状态分配3位。然而,在实际操作中仅使用四种类型的值的情况下,值可以压缩到2位并存储。这种压缩/解压缩处理可以通过使用硬件和软件中的一者或两者来实现。
在图5和图6所示的上述过程中,在处理器内核10对其请求进行存储器访问的数据的安全状态与存储在高速缓冲存储器20中的安全状态不匹配的情况下,刷新相对应的高速缓存行。
相反,也可以应用修改例,在该修改例中,即使在来自处理器内核10的存储器访问请求的安全状态与高速缓冲存储器20中存储的安全状态不匹配的情况下,也不立即刷新相应的高速缓存行,而是请求MMU 30仅执行保护检查。根据该修改例,如果允许访问作为MMU30的保护检查的结果,则仅需更新存储在高速缓冲存储器20中的安全状态,并且可以省略高速缓冲存储器刷新。
图8和图9分别以流程图的形式示出用于控制存储器管理系统1中的存储器访问的过程的修改例。在所示的过程中,即使在安全状态不匹配的情况下,如果允许访问作为MMU30的保护检查的结果,则只需要更新存储在高速缓冲存储器20中的安全状态,并且可以省略高速缓冲存储器刷新。
注意,高速缓冲存储器20被配置为使得安全状态以高速缓存行为单位存储在高速缓冲存储器20中。此外,在图8和图9所示的流程图中,要由MMU 30执行的处理步骤以灰色示出,并且其它处理步骤在高速缓冲存储器20中执行。
该过程响应于处理器内核10发出的存储器访问请求而开始。
首先,搜索高速缓冲存储器20以检查与处理器内核10所请求的虚拟地址相对应的高速缓存行是否存在(即,高速缓存命中是否发生)(步骤S801)。然后,在高速缓存命中发生的情况下(步骤S801中的“是”),进一步检查与存储器访问请求同时传送的安全状态是否与存储在命中请求的高速缓存行中的安全状态相同(步骤S802)。然后,如果安全状态未改变(步骤S802中的“是”),则根据存储器访问请求对高速缓存行执行读取处理或写入处理(步骤S803),并且处理结束。
另一方面,当安全状态中存在的改变时(步骤S802中的“否”),MMU30将虚拟地址转换为物理地址,并且另外,参考关于TLB 31中的相对应的条目的许可信息,检查是否允许来自处理器内核10的存储器访问请求(步骤S814)。
在MMU 30允许来自处理器内核10的存储器访问请求的情况下(步骤S814中的“是”),对高速缓存行执行读取处理或写入处理(步骤S815)。之后,将写入到高速缓存行的数据的安全状态存储在标签中(步骤S816),并且处理结束。换句话说,当处理器内核10请求存储器访问的安全状态中存在改变时,如果允许访问作为MMU 30的保护检查的结果,则简单地更新存储在标签中的安全状态,并且省略高速缓存刷新。
此外,在MMU 30未允许来自处理器内核10的存储器访问请求的情况下(步骤S814中的“否”),处理如下进行。当其上已发生高速缓存命中的高速缓存行为“脏”时(即,当高速缓存行的数据已更新时)(步骤S804中的“是”),数据以高速缓存行所存储的安全状态被写回至主存储器40(步骤S805)。
此外,在高速缓存未命中发生在处理器内核10所请求的虚拟地址上的情况下(步骤S801中的“否”),随后检查高速缓冲存储器20是否已满并且是否需要替换(步骤S806)。在需要替换的情况下(步骤S806中的“是”),根据预定的替换算法确定要丢弃的数据(即,牺牲高速缓存行)。然后,当牺牲行为“脏”时(即,当数据已更新时)(步骤S807中的“是”),牺牲行的数据以牺牲行所存储的安全状态被写回至主存储器40(步骤S808)。
然后,当高速缓存未命中发生在处理器内核10所请求的虚拟地址上时(步骤S801中的“否”),或者在处理器内核10的处理的安全状态已改变的情况下(步骤S802中的“否”),MMU 30将虚拟地址转换为物理地址,并且另外,参考关于TLB 31中的相对应的条目的许可信息,检查是否允许来自处理器内核10的存储器访问请求(步骤S809)。
在处理步骤S809中,MMU 30可以参考存储在与所请求的虚拟地址(如上所述)相对应的TLB条目中的8位许可信息当中的与存储器访问请求同时从处理器内核10传送的安全状态相对应的标志,来确定是允许存储器访问还是保护存储器。
这里,在MMU 30允许来自处理器内核10的存储器访问请求的情况下(步骤S809中的“是”),MMU 30从主存储器40中的相对应的物理地址读取数据(步骤S810)。然后,将读取出的数据写入高速缓冲存储器20中的空闲行或牺牲行(步骤S811)。此外,更新高速缓存行的标签信息步骤S812),并且另外,写入到高速缓存行的数据的安全状态存储在标签中(步骤S816),并且处理结束。
此外,在MMU 30未允许来自处理器内核10的存储器访问请求的情况下(步骤S809中的“否”),MMU 30将保护错误返回到作为访问请求源的处理器内核10(步骤S813),并处理结束。
根据图8和图9所示的过程,即使在来自处理器内核10的存储器访问请求的安全状态与存储在高速缓冲存储器20中的安全状态不匹配的情况下,如果允许访问作为MMU 30的保护检查的结果,则仅需要更新存储在高速缓冲存储器20中的安全状态,并且可以省略对主存储器40的数据的写回。
此外,在关于许可的预定规则存在的情况下,也可以应用其中在来自处理器内核10的存储器访问请求的安全状态与存储在高速缓冲存储器20中的安全状态不匹配的情况下根据预定规则在高速缓冲存储器20中进行关于许可的确定的修改例。根据该修改例,相对应的高速缓存行未立即刷新,并且另外,不需要请求MMU 30仅执行保护检查。
此外,在关于许可的预定规则存在的情况下,也可以执行存储器访问控制,在该访问控制中根据预定规则在高速缓冲存储器20中进行关于许可的确定。即使在来自处理器内核10的存储器访问请求的安全状态与存储在高速缓冲存储器20中的安全状态不匹配的情况下,也根据预定规则在高速缓冲存储器20中进行关于许可的确定。因此,MMU 30不需要执行保护检查。当然,相对应的高速缓存行不会立即刷新。
例如,假设高速缓冲存储器20中存在如下预定规则:如果在由MMU30执行的许可检查中已允许安全状态中的写入处理,则也允许处理“写入”被处理“读取”替换的安全状态。
具体地,假设存在如果安全状态(开发者、用户、写入)已被MMU 30允许,则安全状态(开发者、用户、读取)也被允许的预定规则。在这种情况下,虽然安全状态(开发者、用户、写入)与存储器访问请求同时从处理器内核10传送,但安全状态(开发者、用户、读取)存储在命中存储器访问请求的高速缓存行中。因此,安全状态不匹配。然而,命中存储器访问请求的高速缓存行被访问,并且存储在标签中的安全状态被简单地更新,而无需由MMU 30进行许可检查或高速缓存刷新。MMU 30不需要执行保护检查,并且相对应的高速缓存行不被立即刷新。
可替代地,预定规则可以是允许在具有更高权限的安全状态中发出的存储器访问请求的规则。针对另一示例,“专有”是在权限上高于“开发者”的安全状态,并且“特权”是在权限上高于“用户”的安全状态。因此,即使在与存储器访问请求同时从处理器内核10传送的安全状态与存储在高速缓冲存储器20中的安全状态不匹配的情况下,如果安全状态的权限更高,则仍访问命中存储器访问请求的高速缓存行,并且简单地更新存储在标签中的安全状态。MMU 30不需要执行保护检查。当然,相对应的高速缓存行不会立即被刷新。
注意,基于这种预定规则控制对高速缓冲存储器20的访问的功能可以通过硬件或软件来实现,或者通过硬件和软件的组合来实现。
图10和图11分别以流程图的形式示出用于控制存储器管理系统1中的存储器访问的过程的修改例。在所示的过程中,在安全状态不匹配的情况下,根据存在于改变后的安全状态下的高速缓冲存储器20中的预定规则来控制对高速缓冲存储器20的访问。在允许访问高速缓冲存储器20的情况下,存储在高速缓冲存储器20中的安全状态仅需要被更新,并且可以省略高速缓冲存储器刷新。
注意,高速缓冲存储器20被配置为使得安全状态以高速缓存行为单位存储在高速缓冲存储器20中。此外,在图10和图11所示的流程图中,要由MMU 30执行的处理步骤以灰色示出,而其它处理步骤在高速缓冲存储器20中执行。
该过程响应于处理器内核10发出的存储器访问请求而开始。
首先,搜索高速缓冲存储器20以检查是与处理器内核10所请求的虚拟地址相对应的高速缓存行是否存在(即,高速缓存命中是否发生)(步骤S1001)。在高速缓存命中发生的情况下(步骤S1001中的“是”),进一步检查与存储器访问请求同时传送的安全状态是否与存储在命中请求的高速缓存行中的安全状态相同(步骤S1002)。然后,如果安全状态未变化(步骤S1002中的“是”),则根据存储器访问请求对高速缓存行执行读取处理或写入处理(步骤S1003),并且处理结束。
另一方面,当安全状态中存在改变时(步骤S1002中的“否”),检查改变后的安全状态是否满足存在于高速缓冲存储器20中的预定规则(步骤S1014)。例如,检查处理器内核10请求存储器访问的安全状态在权限上是否高于在高速缓冲存储器20中命中请求的高速缓存行中存储的安全状态。
在安全状态的改变满足预定规则的情况下(步骤S1014中的“是”),对高速缓存行执行读取处理或写入处理(步骤S1015)。之后,将写入高速缓存行的数据的安全状态存储在标签中(步骤S1016),并且处理结束。换句话说,当由处理器内核10请求存储器访问的安全状态中存在改变时,如果根据存在于高速缓冲存储器20中的预定规则确定允许访问,则简单地更新存储在标签中的安全状态,并且省略高速缓冲存储器刷新。
此外,在MMU 30未允许来自处理器内核10的存储器访问请求的情况下(步骤S1014中的“否”),处理如下进行。当其上已发生高速缓存命中的高速缓存行为“脏”时(即,当高速缓存行的数据已更新时)(步骤S1004中的“是”),数据以高速缓存行所存储的安全状态被写回至主存储器40(步骤S1005)。
此外,在高速缓存未命中发生在处理器内核10所请求的虚拟地址上的情况下(步骤S1001中的“否”),随后检查高速缓冲存储器20是否已满并且是否需要替换(步骤S1006)。在需要替换的情况下(步骤S1006中的“是”),根据预定的替换算法确定要丢弃的数据(即,牺牲高速缓存行)。然后,当牺牲行为“脏”时(即,当数据已更新时)(步骤S1007中的“是”),牺牲行的数据以牺牲行所存储的安全状态被写回主存储器40(步骤S1008)。
然后,当高速缓存未命中发生在处理器内核10所请求的虚拟地址上时(步骤S1001中的“否”),或者在处理器内核10的处理的安全状态已改变的情况下(步骤S1002中的“否”),MMU 30将虚拟地址转换为物理地址,并且另外,参考TLB 31中的相对应的条目的许可信息,检查是否允许来自处理器内核10的存储器访问请求(步骤S1009)。
在处理步骤S1009中,MMU 30可以参考存储在与所请求的虚拟地址(如上所述)相对应的TLB条目中的8位许可信息当中的与存储器访问请求同时从处理器内核10传送的安全状态相对应的标志,来确定是允许存储器访问还是保护存储器。
这里,在MMU 30允许来自处理器内核10的存储器访问请求的情况下(步骤S1009中的“是”),MMU 30从主存储器40中的相对应的物理地址读取数据(步骤S1010)。然后,将读取出的数据写入高速缓冲存储器20中的空闲行或牺牲行(步骤S1011)。此外,更新高速缓存行的标签信息步骤S1012),并且另外,将写入高速缓存行的数据的安全状态存储在标签中(步骤S1016),并且处理结束。
此外,在MMU 30未允许来自处理器内核10的存储器访问请求的情况下(步骤S1009中的“否”),MMU 30将保护错误返回到作为访问请求源的处理器内核10(步骤S1013),并处理结束。
根据图10和图11所示的过程。即使在来自处理器内核10的存储器访问请求的安全状态与存储在高速缓冲存储器20中的安全状态不匹配的情况下,如果根据存在于高速缓冲存储器20中的预定规则而允许改变的安全状态,则只需要更新存储在高速缓冲存储器20中的安全状态,并且可以省略对主存储器40的数据写回。
注意,除了上述过程(图5和图6、图8和图9、以及图10和图11)之外,还可以配置存储器管理系统1,使得当处理器内核10的安全状态改变时,在采用虚拟地址方法的高速缓冲存储器20中自动检测改变,并且通过软件省略高速缓冲存储器刷新。
根据本实施方式的存储器管理系统1能够减少要存储在高速缓冲存储器20中的信息量,从而保护高速缓冲存储器20中的数据。因此,可以减少用于标签存储器的昂贵存储器资源(触发器或SRAM)。
本说明书中公开的技术可以简单地通过改变高速缓存行的设计而容易地实现。因此,不需要向连接高速缓冲存储器20与MMU 30的总线添加边带信号(用于复制许可信息),也不需要改变MMU 30的设计。
因此,本说明书公开的技术具有减少采用虚拟地址高速缓存方法的高速缓冲存储器中的用于保护数据的存储器资源和控制电路并且提高功率效率的效果。因此,本说明书中公开的技术可以适当地应用于超低功耗IoT和可穿戴装置。
工业适用性
以上已参照具体实施方式详细描述了本说明书中公开的技术。然而,显而易见,本领域技术人员可以在不脱离本说明书中公开的技术的要旨的情况下对实施方式进行修改和代替。
本说明书公开的存储器管理技术可以应用于例如仅仅包括小容量存储器的嵌入式装置,使得采用虚拟地址高速缓存方法的高速缓冲存储器中的数据可以用存储在高速缓冲存储器中的少量信息来保护。当然,本说明书中公开的存储器管理技术可以应用于装备有普通或大容量存储器并采用虚拟地址高速缓存方法的各种类型的信息处理设备。
简言之,已通过示例的方式描述了本说明书中公开的技术,并且不应限制性地解释本说明书中描述的内容。为了确定在本说明书中公开的技术的要旨,应该考虑权利要求。
注意,本说明书中公开的技术还可以采用以下配置。
(1)一种存储器管理系统,包括:
高速缓冲存储器,临时存储处理器内核请求对其进行存储器访问的数据;
状态存储单元,存储与来自所述处理器内核的所述存储器访问的请求同时传送的安全状态;以及
存储器管理单元,管理对主存储器的访问。
(2)根据上面(1)所述的存储器管理系统,其中,
所述状态存储单元以所述高速缓冲存储器的高速缓存行为单位存储安全状态。
(3)根据上面(1)或(2)所述的存储器管理系统,其中,
所述状态存储单元包括以下中的任一项:所述高速缓冲存储器中的标签存储器、所述高速缓冲存储器中的与所述标签存储器分开设置的寄存器、以及安装在高速缓存行主体外部的存储器或寄存器,并且所述状态存储单元存储针对所述高速缓冲存储器的每一行的安全状态。
(4)根据上面(1)至(3)中任一项所述的存储器管理系统,其中,
所述存储器管理单元将许可信息存储在转换旁路缓冲器中的页表的每个条目中,所述许可信息指示是否允许针对每个安全状态进行访问,并且
所述存储器管理单元基于存储在命中请求的条目中的所述许可信息,确定是否允许访问与来自所述处理器内核的所述存储器访问请求同时传送的所述安全状态。
(5)根据上面(1)至(4)中任一项所述的存储器管理系统,其中,
响应于来自所述处理器内核的所述存储器访问的请求,所述状态存储单元将在所述存储器管理单元的保护检查之后从所述主存储器读取出的数据写入到所述高速缓冲存储器,并且与相对应的高速缓存行相关联地存储所述安全状态。
(6)根据上面(1)至(5)中任一项所述的存储器管理系统,其中,
在当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态不匹配的情况下,对命中请求的高速缓存行执行高速缓存刷新。
(7)根据上面(1)至(5)中任一项所述的存储器管理系统,其中,
在当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态不匹配的情况下,由所述存储器管理单元执行保护检查,并且在允许所述存储器访问的请求的情况下,访问命中请求的高速缓存行并且更新存储在所述状态存储单元中的所述安全状态。
(8)根据上面(1)至(5)中任一项所述的存储器管理系统,其中,
在虽然当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态不匹配、但所述安全状态之间的差异满足所述高速缓冲存储器内的预定规则的情况下,访问命中请求的高速缓存行并且更新存储在所述状态存储单元中的所述安全状态。
(9)根据上面(1)至(5)中任一项所述的存储器管理系统,其中,
在当所述处理器内核请求存储器访问时的所述安全状态在权限上高于存储在所述状态存储单元中的安全状态的情况下,访问命中请求的高速缓存行并且更新存储在所述状态存储单元中的所述安全状态。
(10)根据上面(1)至(9)中任一项所述的存储器管理系统,其中,
所述高速缓冲存储器采用虚拟地址高速缓存方法。
(11)一种存储器管理方法,包括:
从主存储器中读取由处理器内核请求对其进行存储器访问的数据并且将所述数据临时存储在高速缓冲存储器中的步骤;
状态存储步骤,存储与来自所述处理器内核的存储器访问的请求同时传送的安全状态;以及
控制步骤,基于将在所述处理器内核请求存储器访问时的所述安全状态与存储在状态存储单元中的安全状态进行比较的结果,控制对所述高速缓冲存储器和所述主存储器的访问。
(11-1)根据上面(11)所述的存储器管理方法,其中,
在处理器内核请求存储器访问的安全状态与存储在状态存储单元中的安全状态不匹配的情况下,在控制步骤中对命中该请求的高速缓存行执行高速缓存刷新。
(11-2)根据上面(11)所述的存储器管理方法,其中,
在处理器内核请求存储器访问的安全状态与存储在状态存储单元中的安全状态不匹配的情况下,存储器管理单元执行保护检查,并且在允许存储器访问请求的情况下,访问命中该请求的高速缓存行并且在控制步骤中更新存储在状态存储单元中的安全状态。
(11-3)根据上面(11)所述的存储器管理方法,其中,
在虽然处理器内核请求存储器访问的安全状态与存储在状态存储单元中的安全状态不匹配、但安全状态之间的差异满足高速缓冲存储器内的预定规则的情况下,访问命中该请求的高速缓存行并且更新存储在状态存储单元中的安全状态。
(12)一种信息处理设备,包括:
处理器内核;
主存储器;
高速缓冲存储器,临时存储处理器内核请求对其进行存储器访问的数据;
状态存储单元,存储与来自处理器内核的存储器访问请求同时传送的安全状态;以及
存储器管理单元,管理对主存储器的访问。
参考标志列表
1 存储器管理系统
10 处理器内核
20 高速缓冲存储器
30 MMU
31 TLB
32 页遍历机构
40 主存储器
41 页表
100 感测装置
101 CPU
102 MMU
103 SRAM
104 闪存
105 传感器
106 通信模块
107 电池
110 总线
200 基站
201 云
202 服务器。
Claims (11)
1.一种存储器管理系统,包括:
高速缓冲存储器,临时存储处理器内核请求对其进行存储器访问的数据;
状态存储单元,存储与来自所述处理器内核的所述存储器访问的请求同时传送的安全状态;以及
存储器管理单元,管理对主存储器的访问,
其中,在虽然当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态不匹配、但当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态之间的差异满足所述高速缓冲存储器内的预定规则的情况下,访问命中请求的高速缓存行并且更新存储在所述状态存储单元中的所述安全状态。
2.根据权利要求1所述的存储器管理系统,其中,
所述状态存储单元以所述高速缓冲存储器的高速缓存行为单位存储安全状态。
3.根据权利要求1所述的存储器管理系统,其中,
所述状态存储单元包括以下中的任一项:所述高速缓冲存储器中的标签存储器、所述高速缓冲存储器中的与所述标签存储器分开设置的寄存器、以及安装在高速缓存行主体外部的存储器或寄存器,并且所述状态存储单元存储针对所述高速缓冲存储器的每一行的安全状态。
4.根据权利要求1所述的存储器管理系统,其中,
所述存储器管理单元将许可信息存储在转换旁路缓冲器中的页表的每个条目中,所述许可信息指示是否允许针对每个安全状态进行访问,并且
所述存储器管理单元基于存储在命中请求的条目中的所述许可信息,确定是否允许访问与来自所述处理器内核的所述存储器访问请求同时传送的所述安全状态。
5.根据权利要求1所述的存储器管理系统,其中,
响应于来自所述处理器内核的所述存储器访问的请求,所述状态存储单元将在所述存储器管理单元的保护检查之后从所述主存储器读取出的数据写入到所述高速缓冲存储器,并且与相对应的高速缓存行相关联地存储所述安全状态。
6.根据权利要求1所述的存储器管理系统,其中,
在当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态不匹配的情况下,对命中请求的高速缓存行执行高速缓存刷新。
7.根据权利要求1所述的存储器管理系统,其中,
在当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态不匹配的情况下,由所述存储器管理单元执行保护检查,并且在允许所述存储器访问的请求的情况下,访问命中请求的高速缓存行并且更新存储在所述状态存储单元中的所述安全状态。
8.根据权利要求1所述的存储器管理系统,其中,
在当所述处理器内核请求存储器访问时的所述安全状态在权限上高于存储在所述状态存储单元中的安全状态的情况下,访问命中请求的高速缓存行并且更新存储在所述状态存储单元中的所述安全状态。
9.根据权利要求1所述的存储器管理系统,其中,
所述高速缓冲存储器采用虚拟地址高速缓存方法。
10.一种存储器管理方法,包括:
从主存储器中读取由处理器内核请求对其进行存储器访问的数据并且将所述数据临时存储在高速缓冲存储器中的步骤;
状态存储步骤,存储与来自所述处理器内核的存储器访问的请求同时传送的安全状态;以及
控制步骤,基于将在所述处理器内核请求存储器访问时的所述安全状态与存储在状态存储单元中的安全状态进行比较的结果,控制对所述高速缓冲存储器和所述主存储器的访问,其中,在虽然当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态不匹配、但当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态之间的差异满足所述高速缓冲存储器内的预定规则的情况下,访问命中请求的高速缓存行并且更新存储在所述状态存储单元中的所述安全状态。
11.一种信息处理设备,包括:
处理器内核;
主存储器;
高速缓冲存储器,临时存储所述处理器内核请求对其进行存储器访问的数据;
状态存储单元,存储与来自所述处理器内核的存储器访问的请求同时传送的安全状态;以及
存储器管理单元,管理对所述主存储器的访问,
其中,所述信息处理设备被配置为:
在虽然当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态不匹配、但当所述处理器内核请求存储器访问时的所述安全状态与存储在所述状态存储单元中的安全状态之间的差异满足所述高速缓冲存储器内的预定规则的情况下,访问命中请求的高速缓存行并且更新存储在所述状态存储单元中的所述安全状态。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018-035904 | 2018-02-28 | ||
JP2018035904 | 2018-02-28 | ||
PCT/JP2018/043086 WO2019167360A1 (ja) | 2018-02-28 | 2018-11-21 | メモリ管理システム及びメモリ管理方法、並びに情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111868700A CN111868700A (zh) | 2020-10-30 |
CN111868700B true CN111868700B (zh) | 2024-04-19 |
Family
ID=67804930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880090079.8A Active CN111868700B (zh) | 2018-02-28 | 2018-11-21 | 存储器管理系统、存储器管理方法以及信息处理设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11392496B2 (zh) |
JP (1) | JPWO2019167360A1 (zh) |
KR (1) | KR20200125596A (zh) |
CN (1) | CN111868700B (zh) |
WO (1) | WO2019167360A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11438963B2 (en) | 2019-04-29 | 2022-09-06 | Sonicwall Inc. | Method for providing an elastic content filtering security service in a mesh network |
US11540132B2 (en) | 2019-04-29 | 2022-12-27 | Sonicwall Inc. | Method for providing an elastic content filtering security service in a mesh network |
US11310665B2 (en) * | 2019-04-29 | 2022-04-19 | Sonicwall Inc. | Elastic security services and load balancing in a wireless mesh network |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265227A (en) * | 1989-11-14 | 1993-11-23 | Intel Corporation | Parallel protection checking in an address translation look-aside buffer |
CN104272279A (zh) * | 2012-05-10 | 2015-01-07 | Arm有限公司 | 具有缓存和转换后备缓冲器的数据处理装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08110873A (ja) * | 1994-10-11 | 1996-04-30 | Toshiba Corp | キャッシュメモリサブシステム |
JP3866597B2 (ja) * | 2002-03-20 | 2007-01-10 | 株式会社東芝 | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
FR2859292A1 (fr) * | 2003-08-27 | 2005-03-04 | St Microelectronics Sa | Dispositif de controle de l'acces a une memoire securisee, comprenant un circuit synchrome de recherche d'attributs |
JP2006155516A (ja) | 2004-12-01 | 2006-06-15 | Ntt Docomo Inc | メモリ管理装置、メモリ管理システム及びメモリ管理方法 |
US7805588B2 (en) | 2005-10-20 | 2010-09-28 | Qualcomm Incorporated | Caching memory attribute indicators with cached memory data field |
US7650479B2 (en) * | 2006-09-20 | 2010-01-19 | Arm Limited | Maintaining cache coherency for secure and non-secure data access requests |
US7958320B2 (en) * | 2006-12-05 | 2011-06-07 | Intel Corporation | Protected cache architecture and secure programming paradigm to protect applications |
US20110202740A1 (en) * | 2010-02-17 | 2011-08-18 | Arm Limited | Storing secure page table data in secure and non-secure regions of memory |
GB2516477A (en) * | 2013-07-24 | 2015-01-28 | Ibm | Method and system for handling virtual memory address synonyms in a multi-level cache hierarchy structure |
JP6027562B2 (ja) * | 2014-02-24 | 2016-11-16 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
JP6118285B2 (ja) * | 2014-03-20 | 2017-04-19 | 株式会社東芝 | キャッシュメモリシステムおよびプロセッサシステム |
US20190102324A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Cache behavior for secure memory repartitioning systems |
-
2018
- 2018-11-21 US US16/971,151 patent/US11392496B2/en active Active
- 2018-11-21 WO PCT/JP2018/043086 patent/WO2019167360A1/ja active Application Filing
- 2018-11-21 JP JP2020502806A patent/JPWO2019167360A1/ja active Pending
- 2018-11-21 CN CN201880090079.8A patent/CN111868700B/zh active Active
- 2018-11-21 KR KR1020207023718A patent/KR20200125596A/ko not_active Application Discontinuation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265227A (en) * | 1989-11-14 | 1993-11-23 | Intel Corporation | Parallel protection checking in an address translation look-aside buffer |
CN104272279A (zh) * | 2012-05-10 | 2015-01-07 | Arm有限公司 | 具有缓存和转换后备缓冲器的数据处理装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2019167360A1 (ja) | 2019-09-06 |
US11392496B2 (en) | 2022-07-19 |
JPWO2019167360A1 (ja) | 2021-02-12 |
US20210117323A1 (en) | 2021-04-22 |
CN111868700A (zh) | 2020-10-30 |
KR20200125596A (ko) | 2020-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107111455B (zh) | 电子处理器架构以及缓存数据的方法 | |
EP2537098B1 (en) | Iommu architected tlb support | |
US8250334B2 (en) | Providing metadata in a translation lookaside buffer (TLB) | |
US8271735B2 (en) | Cache-coherency protocol with held state | |
CN111868700B (zh) | 存储器管理系统、存储器管理方法以及信息处理设备 | |
US9086991B2 (en) | Solid state drive cache recovery in a clustered storage system | |
US10078588B2 (en) | Using leases for entries in a translation lookaside buffer | |
JP5583274B2 (ja) | コンピュータ・メモリを管理する方法、対応するコンピュータ・プログラム製品、およびそのためのデータ・ストレージ・デバイス | |
US9547603B2 (en) | I/O memory management unit providing self invalidated mapping | |
US8352646B2 (en) | Direct access to cache memory | |
US11392508B2 (en) | Lightweight address translation for page migration and duplication | |
US12066938B2 (en) | Data pattern based cache management | |
US7117312B1 (en) | Mechanism and method employing a plurality of hash functions for cache snoop filtering | |
KR20120088370A (ko) | 멀티 프로세서 시스템에서의 메모리 보호 장치 및 방법 | |
US7461212B2 (en) | Non-inclusive cache system with simple control operation | |
CN116243871A (zh) | 数据存储系统、数据存储方法及电子设备 | |
JP2976867B2 (ja) | 入出力バッファ装置及びその管理方法 | |
US11397691B2 (en) | Latency hiding for caches | |
KR910003495A (ko) | 소형의 고속 록어사이드 데이타 캐시 메모리 |
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 |