CN112602070A - 通过在执行域的页表条目中指定的权限的存储器存取控制 - Google Patents

通过在执行域的页表条目中指定的权限的存储器存取控制 Download PDF

Info

Publication number
CN112602070A
CN112602070A CN201980055578.8A CN201980055578A CN112602070A CN 112602070 A CN112602070 A CN 112602070A CN 201980055578 A CN201980055578 A CN 201980055578A CN 112602070 A CN112602070 A CN 112602070A
Authority
CN
China
Prior art keywords
memory
page table
domain
address
virtual
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
Application number
CN201980055578.8A
Other languages
English (en)
Inventor
S·沃勒克
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Publication of CN112602070A publication Critical patent/CN112602070A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/22Safety or protection circuits preventing unauthorised or accidental access to memory cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/145Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being virtual, e.g. for virtual blocks or segments before a translation mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1673Reading or sensing circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1675Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/02Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
    • G11C11/16Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
    • G11C11/165Auxiliary circuits
    • G11C11/1695Protection circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/20Address safety or protection circuits, i.e. arrangements for preventing unauthorized or accidental access

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

描述了与具有页表条目的计算机系统有关的系统、设备和方法,所述页表条目含有用于通过预定义域中的例程的执行进行的存储器存取的预定义类型的权限位。所述页表条目可用于将虚拟存储器地址映射到物理存储器地址。响应于存取所述虚拟存储器地址的例程,可以从所述页表条目中提取对应于所述例程的执行域和所述存储器存取的类型的权限位以确定是否要拒绝所述存储器存取。

Description

通过在执行域的页表条目中指定的权限的存储器存取控制
相关申请
本申请要求以下的提交日期的权益:2019年7月23日提交且名称为“通过在执行域的页表条目中指定的权限的存储器存取控制(Memory Access Control throughPermissions Specified in Page Table Entries for Execution Domains)”的第16/520,292号美国专利申请,及2018年8月30日提交且名称为“通过在执行域的页表条目中指定的权限的存储器存取控制(Memory Access Control through Permissions Specifiedin Page Table Entries for Execution Domains)”的第62/724,896号临时美国专利申请,所述申请的全部公开内容由此以引用的方式并入本文中。
技术领域
本文中所公开的至少一些实施例大体上涉及计算机体系结构,且更确切地但不限于通过在执行域的页表条目中指定的权限实施的存储器存取控制。
背景技术
经编程用于计算机的指令可以分层方式结构化。一个层可以为另一层提供资源和服务。例如,超管理器可以创建或提供在计算机硬件组件上实施的虚拟机。操作系统可以使用具有预定义体系结构的计算机中可用的资源来提供资源和服务。由操作系统操作的计算机资源或计算机可以是实际的计算机硬件组件,也可以是由超管理器提供的虚拟机组件。应用程序可以使用操作系统提供的服务和资源提供应用程序特定的功能。
附图说明
在附图的图中作为实例而非限制示出了实施例,在附图中,相似的参考标号指示类似的元件。
图1示出根据一些实施例的控制存储器存取的系统。
图2示出可用于图1的系统的权限结构。
图3示出执行域的具有权限集合的页表条目。
图4示出具有实施存储器存取权限的页表的计算机系统。
图5示出通过在执行域的页表条目中指定的权限控制存储器存取的方法。
具体实施方式
本公开包含基于在页表条目中指定的相应权限集合通过不同的非层次执行域控制存储器存取的技术。
在传统的系统中,可以向指令的不同层(例如,用户应用程序相较于操作系统)给予不同水平的特权和/或信任。通常,保护环是在计算机中构建和实施的,以保护数据和功能免受基于环层次的故障和恶意行为的影响。从最高特权(因而最受信任)到最低特权(因而最不受信任)的环静态地布置成层次。例如,层次可包含一个具有最高特权的操作系统内核环、一个装置驱动器环和一个具有最低特权的应用程序环。较低特权环中的程序或例程可以由相应的专用硬件强制控制门来限制,以存取层次中较高特权环的资源和服务。环之间的门控存取可以提高安全性。
在本公开的技术中,经编程用于计算机系统的指令或例程可以分类成一组预定义非层次的域,例如超管理器的域、操作系统的域、应用程序的域等。例程可经由通过一或多个页表转换成物理存储器地址的虚拟存储器地址存取存储器资源。物理存储器区可以显式地配置成具有用于不同域的不同权限,而不依赖于静态域层次。
图1示出根据一些实施例的控制存储器存取的系统。
图1的系统包含可用于存储经编程用于计算机系统的各种例程的数据和指令的物理存储器109。
一般来说,例程可包含存储于存储器109中的预编程指令集。例程还可具有存储于存储器109中的输入数据、输出数据和/或临时数据。例程可激活或调用用于服务和/或资源的另一例程。调用例程和被调用例程可以在相同或不同的域(例如,101、103、……、105)中。存储器109中的不同区121、123、……、125可配置有不同权限集合(例如,107);且每个权限集合(例如,107)可包含用于请求存取存储器区123的相应域101、103、……、105的不同权限(例如,111、113、……、115)。例如,权限107可以在用于虚拟存储器地址的逻辑到物理地址转换的页表条目中指定,使得存储器区121、123、……、125的结构可对应于存储器页结构,如下文结合图3进一步论述。
在图1中,物理存储器109划分成多个区121、123、……、125。例如,每个区(例如,123)可以是用于存储器管理的物理存储器109的页或物理存储器109的一组页。
典型区Y(例如,123)可具有为所述一组预定义域101、103、……、105指定的相应一组权限Y 107。例如,超管理器102的例程可以分类在域A 101中;操作系统104的例程可以分类在另一域B 103中;且应用程序106的例程可以分类在另一域C 105中。超管理器或虚拟机监视器(VMM)创建并管理虚拟机。超管理器可控制基本功能,例如物理存储器和输入/输出(I/O)。权限Y 107显式地标识分别用于域101、103、……、105的权限111、113、……、115。因此,存取区123的例程的特权不取决于域102、103、……、105的层次。
例如,域103中的例程可以经编程用于操作系统104,且配置成使用存储器区Y 123存储指令和/或数据。当超管理器102的域101中的另一例程存取存储器区123以用于读取、写入或执行指令时,检查为域101指定的存取区123的权限111。是否通过域101中的执行针对特定操作类型(例如,读取、写入、执行)阻止或拒绝对存储器区123的存取可基于为域101、存储器区123和所述操作类型指定的权限位(例如,在111中)而确定。因此,存取控制可以独立于域103和域101之间的相对层次。
类似地,考虑经编程用于操作系统104且配置成使用存储器区Y 123存储指令和/或数据的域103中的例程。当应用程序106的域105中的另一例程存取存储器区123以用于某一类型的操作(例如,读取、写入或执行)时,检查为域105指定的存取区123的权限115。是否阻止或拒绝在域103中执行的应用程序106对存储器区123的存取可基于为域105和为存储器区123指定的权限115而确定。因此,存取控制可以独立于域(例如,103和105)之间的相对层次。
一般来说,相同域(例如,103)的不同例程可配置成使用不同区(例如,121、123、……、125),且因此配置成具有用于相同域(例如,101或105)的不同权限。
此外,例程可配置成在不同区(例如,121、123、……、125)中存储其数据的不同部分,且因此配置成具有用于相同域(例如,101、103、……或105)的不同权限。
因为图1的存储器存取控制系统不依赖于信任的预定义域层次(即为非层次的),所以它可以提供比常规保护环更好的灵活性和更精细的控制粒度。
图2示出可用于图1的系统的权限结构。
在图2中,为每个域101、103、……或105指定权限位集合111、113、……或115。每个集合(例如,111)指定用于一组预定义操作(例如,读取、写入、……、执行)的权限位(例如,131、133、……、135)。
例如,当域101中的例程存取存储器区123以从区123读取数据时,检查为域101指定的读取权限131。如果读取权限131处于第一预定义状态(例如,1或0),那么准许例程的读取操作;且如果读取权限131处于第二预定义状态(例如,0或1),那么拒绝例程的读取操作。
例如,当域101中的例程存取存储器区123以将数据写入到区123中时,检查为域101指定的写入权限133。如果写入权限133处于第一预定义状态(例如,1),那么准许例程的写入操作;且如果写入权限133处于第二预定义状态(例如,0),那么拒绝例程的写入操作。
例如,当域101中的例程存取存储器区123以从区123加载指令以供执行时,检查为域101指定的执行权限135。如果执行权限135处于第一预定义状态(例如,1),那么准许执行;且如果执行权限135处于第二预定义状态(例如,0),那么拒绝执行请求。
区121、123、……、125的粒度可对应于用于将虚拟存储器地址转换成物理存储器地址的页表中的存储器页;且权限(例如,107)可以存储为对应区123的页表条目的部分,如图3中所示。
图3示出执行域(例如,101、103、……、105)的具有权限集合107的页表条目153。
虚拟地址空间127中的典型虚拟地址141可以使用页表151转换成物理地址空间129中的对应物理地址159。一般来说,可以使用多个页表(例如,151)将虚拟地址空间127映射到物理地址空间129。
虚拟地址141可包含表ID 143、条目ID 145和偏移147。表ID 143可用于标识含有用于含通过虚拟地址141和物理地址159标识的存储器单元的页的页表条目153的页表151。条目ID 145用作页表151的索引以高效定位页表条目153。页表条目153提供物理地址159的基址157。相同存储器页中的物理地址共享相同基址157。因此,基址157标识存储器109中的区123。虚拟地址141的偏移147用作存储器109中的页或区123的对应偏移147。基址157和偏移147的组合提供对应于虚拟地址141的物理地址159。
在图3中,页表条目153不仅指定页或区123的基址157,而且还指定页或存储器区123的权限107,包含图1所示的相应域101、103、……、105的权限111、113、……、115;且对于每个域(例如,101),页表条目153包含用于相应存取操作类型(例如,读取、写入、……或执行)的权限位131、133、……或135,如图2中所示。
任选地,页表条目153可指定物理存储器页的其它属性155,例如页中的数据是否有效、页是否在主存储器中、页是否无效(例如,物理存储器页中的数据的改变尚未相对于存储器区123被刷新到长期内存/存储装置)。例如,属性155可包含指示页是在计算机的主存储器中还是在计算机的存储装置中的页错误位。如果权限107允许对存储器页的当前存取且页错误位指示页当前不在计算机的主存储器中,那么存储器管理单元181可将页从存储装置交换到计算机的主存储器中,以促进对通过页表条目153标识的页的存取。但是,如果权限107针对当前执行域拒绝对页的当前存取,那么不必评估页错误位和/或在对应于页表条目153的页中进行交换。
一般来说,表ID 143可以划分成用于定位页表151的多个字段。例如,表ID 143可包含标识顶层页表的顶部表ID和用作顶层页表的索引以检索含有页表151的标识符的页表条目(方式类似于条目ID 145为页表151编索引以标识含有基址157的页表条目153)的顶部表条目ID。
一般来说,条目ID 145可以被视为页表151中的虚拟页码;并且虚拟页码(例如,145)可在页表151中用于查找含有基址157的页表条目153。
例如,表ID 143可包含可用于标识一连串页表(例如,151)的一组虚拟页码。每个虚拟页码用作页表(或页目录)中的索引以标识含有下一层页表(或页目录)的标识或基址的页表条目(或页目录条目)。
在一些实例中,计算机中的不同运行中进程可具有不同虚拟地址空间(例如,127);并且运行中进程的进程ID可用于确定顶层页表(或页目录)。在一些实例中,虚拟地址141的一部分的散列、进程ID和/或托管在计算机系统中的虚拟机的标识可用于定位顶层页表(或页目录)。在一些实例中,散列用作查找页表条目的索引或密钥。不管页表条目153如何定位(例如,经由通过多个页表的编索引、经由散列作为索引或密钥的使用),页表条目153的内容都可以图3中所示的方式配置成提供用于不同域101、103、……、105的存取对应于基址157的页/存储器区123的权限107。
在图3中,页或区Y 123的权限Y 107在底层页表151中指定,其中底层页表151中的页表条目153提供物理地址159的基址157。
替代地或组合地,较高层页表(或页目录)也可具有用于其页表条目(或页目录条目)的域权限数据。例如,标识页表151的页表条目(或页目录条目)可具有用于页表151中的所有页的域权限;且因此,页表条目中的域权限数据可应用于由页表151限定的存储器区。在通向页表151的一连串页表条目中指定的权限层次和底层页表条目153中的权限107可以经由逻辑AND运算或逻辑OR运算组合。
例如,如果通向基址157的所述一连串页表条目(包含底层表条目153)中的所有权限位都具有允许存取的值,那么在域(例如,101、103、……、105)中运行的例程可被允许存取通过基址157标识的页。替代地,如果通向基址157的所述一连串页表条目(包含底层表条目153)中的任一权限位具有允许存取的值,那么在域(例如,101、103、……、105)中运行的例程可被允许存取通过基址157标识的页。
例如,如果通向基址157的所述一连串页表条目(包含底层表条目153)中的任一权限位具有拒绝存取的值,那么在域(例如,101、103、……、105)中运行的例程可被拒绝存取通过基址157标识的页。替代地,只有当通向基址157的所述一连串页表条目(包含底层表条目153)中的所有权限位都具有拒绝存取的值时,在域(例如,101、103、……、105)中运行的例程才可被拒绝存取通过基址157标识的页。
例如,当非底层页表条目(或页目录条目)指示操作被禁止时,从虚拟地址141转换成物理地址159的操作可被中断以拒绝与虚拟地址141相关联的存储器存取。响应于所述拒绝,将使用指定用于处理所述拒绝的软件陷阱。
任选地,域权限数据(例如,107)在底层页表151中指定,但不在较高层页表(目录)中指定。
图4示出具有执行域101、103、……、105的实施存储器存取权限(例如,107)的页表(例如,151)的计算机系统。
图4的计算机系统具有经由一或多个总线163耦合到存储器系统161的主机系统165。存储器系统161具有存储器组件171、……、173。
例如,总线163可包含连接到一或多个存储器模块的存储器总线和/或包含连接到一或多个存储装置的外围因特网。存储器组件171、……、173中的一些可提供随机存取;并且存储器组件171、……、173中的所述一些可提供永久性存储能力。存储器组件171、……、173中的一些可能是易失性的,因为当存储器组件的电力供应临时断开连接时,存储于存储器组件中的数据将会损坏和/或擦除。存储器组件171、……、173中的一些可能是非易失性的,因为存储器组件能够在不具有电力的情况下在很长一段时间内保持其中存储的内容。
一般来说,存储器系统161还可称为存储器装置。存储器装置的实例是经由存储器总线连接到中央处理单元(CPU)的存储器模块。存储器模块的实例包含双列直插式存储器模块(DIMM)、小轮廓DIMM(SO-DIMM)、非易失性双列直插式存储器模块(NVDIMM)等。存储器装置的另一实例是经由外围互连件(例如,输入/输出总线、存储区域网络)连接到中央处理单元(CPU)的存储装置。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器和硬盘驱动器(HDD)。在一些实例中,存储器装置是提供内存功能和存储功能的混合内存/存储系统。
存储器组件171、……、173可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含具有一或多个存储器单元阵列(例如,单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC)))的与非(NAND)型快闪存储器。在一些实例中,特定存储器组件可包含存储器单元的SLC部分和MLC部分。每一个存储器单元可存储供主机系统165使用的一或多个数据位(例如,数据块)。替代地或组合地,存储器组件171、……或173可包含一类易失性存储器。在一些实例中,存储器组件171、……或173可包含但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、铁电随机存取存储器(FeTRAM)、铁电RAM(FeRAM)、导电桥RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)、基于纳米线的非易失性存储器、并有忆阻器技术的存储器,和/或非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器单元可以在先前未擦除非易失性存储器单元的情况下进行编程。
一般来说,主机系统165可利用存储器系统161作为包含一或多个存储器组件171、……、173的物理存储器109。主机系统165可从存储器系统161加载指令以供执行、提供将存储于存储器系统161处的数据,并请求将在存储器系统161中检索的数据。
在图4中,主机系统165包含存储器管理单元(MMU)181和处理器169。处理器169具有执行单元(例如,185),例如算术逻辑单元。处理器169具有寄存器183,以保存用于执行的指令、作为指令的运算元的数据和/或指令执行的结果。处理器169可具有内部高速缓存187作为存储器系统161的一部分的代理。
在一些实例中,主机系统165可包含在同一硅裸片上集成为中央处理单元(CPU)的多个处理核心的多个处理器(例如,169)。
经编程用于在处理器169中执行的例程可以一开始存储于存储器系统161中。例程可包含用于超管理器102、操作系统104和应用程序106的指令。一开始存储在存储器系统161中的例程可以加载到内部高速缓存187和/或寄存器183以供在执行单元185中执行。
例程的运行实例形成超管理器102、操作系统104和应用程序106的执行167。在一些实例中,不使用超管理器102;并且操作系统104控制硬件组件(例如,存储器系统161、外围输入/输出装置和/或网络接口卡),而不用超管理器。
超管理器102、操作系统104和/或应用程序106的执行167使用在一或多个虚拟存储器空间(例如,127)中限定的虚拟存储器地址(例如,141)存取存储器123(例如,在存储器组件171、……、173中)。可以使用至少一个页表151(例如,如图3中所示)将在执行中使用的虚拟存储器地址(例如,141)转换成存储器组件(例如,171、……、173)的物理存储器地址(例如,159)。
如图1中所示,超管理器102、操作系统104和应用程序106的例程的执行可以组织成多个域101、103、……、105。对于执行域101、103、……、105中的每一个和通过页表条目153标识的存储器区123,页表条目153标识用于在预定义类型的操作(例如,读取、写入、执行等)中存取区123的权限位(例如,131、133、……、135)的集合(例如,111、113、……、115)。对应权限集合(例如,111)中的权限位(例如,131、133、……、135)控制来自相应执行域(例如,101)的对应类型的存储器存取。
图5示出通过在执行域101、103、……、105的页表条目(例如,153)中指定的权限107控制存储器存取的方法。
例如,图5的方法可以在图4的计算机系统中使用图3的页表151执行,以便为图1所示的相应执行域101、103、……、105提供用于区123中的预定义存储器存取操作类型的图2的权限位131、133、……、135。
在框201处,计算机系统(例如,在图4中示出)在一组指令的执行期间接收存取虚拟存储器地址141的请求。
例如,所述一组指令可以是超管理器102、操作系统104或应用程序106的例程。因此,例程的执行可以分类为在图1所示的所述一组预定域101、103、……、105中的一个中。
在框203处,存储器管理单元(MMU)181(或计算机系统的处理器169)在虚拟存储器地址141转换成物理存储器地址159时确定页表条目153,如图3中所示。
在框205处,存储器管理单元(MMU)181(或计算机系统的处理器169)在多个预定义域101、103、……、105当中标识含有所述一组指令的执行的执行域(例如,101)。
例如,用于加载例程的指令的存储器地址可包含当加载例程以供在处理器169中执行时确定域(例如,101、103、……、105)的对象标识符。在其它实例中,对象标识符是虚拟地址空间的部分,且不指定域。在一些实施方案中,页表条目153包含标识存储于通过页表条目153标识的存储器区123中的例程的域的信息。
例如,当例程正在处理器169中执行时,处理器的寄存器183可存储所述例程的域的标识符。
在框207处,存储器管理单元(MMU)181(或计算机系统的处理器169)在页表条目153中检索为执行域(例如,101、103、……或105)指定的权限107。
例如,权限107可以存储于页表条目153中的预定位置。
在框209处,存储器管理单元(MMU)181(或计算机系统的处理器169)基于在指令的执行域的页表条目153中指定的权限107控制对物理存储器地址129的存取。
例如,相应域101、103、……、105的权限集合111、113、……、115可以存储于页表条目153内的预定位置;且用于每个域(例如,101、103、……或105)的相应存储器存取操作类型(例如,读取、写入、……或执行)的权限131、133、……或135存储于相应执行域101、103、……、105的权限集合(例如,111、113、……或115)内的预定位置。因此,基于指令的执行域和存储器存取操作类型(例如,读取、写入、……或执行),存储器管理单元(MMU)181(或计算机系统的处理器169)可提取权限位(例如,131、133、……、135),并根据所提取的权限位确定是否准许存储器存取操作。
本文所公开的技术可至少适用于其中处理器与存储器分隔开且处理器经由通信总线和/或计算机网络与存储器和存储装置通信的计算机系统。此外,本文所公开的技术可适用于其中处理能力集成于内存/存储装置内的计算机系统。例如,包含典型处理器的执行单元和/或寄存器的处理电路可以在存储器媒体的集成电路和/或集成电路封装内实施以执行存储器装置内的处理。因此,如上文所论述和附图中所示的处理器(例如,101)不一定是冯·诺伊曼体系结构中的中央处理单元。处理器可以是集成于存储器内以克服冯·诺依曼瓶颈的单元,所述瓶颈因为由根据冯·诺伊曼体系结构分开配置的中央处理单元和存储器之间的数据移动的时延造成的吞吐量限制而限制了计算性能。
本公开的描述和附图是说明性的,且不应被解释为限制性的。描述了许多具体细节,以提供透彻的理解。然而,在某些实例中,为了避免模糊描述,不描述众所周知的或常规的细节。对本公开中的一个或某一实施例的引用不一定是对同一实施例的引用;并且这种引用意味着至少一个。
在前述说明书中,已经参考本公开的特定示例性实施例描述了本公开。显而易见的是,在不背离所附权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被视为说明性的而不是限制性的。

Claims (20)

1.一种计算机系统,其包括:
存储器,其配置成至少存储一组预定义域的例程的指令;
处理器,其与所述存储器耦合;以及
存储器管理单元,其耦合在所述处理器和所述存储器之间,其中所述存储器管理单元配置成管理含有页表条目的页表,所述页表条目包含用于所述预定义组中的每一个所述域的存储器存取类型的权限位;
其中所述存储器管理单元配置成在第一域中的例程的执行期间使用所述页表条目将虚拟存储器地址映射到物理存储器地址;
其中所述存储器管理单元进一步配置成响应于所述例程的指令使所述处理器使用所述虚拟存储器地址存取所述物理存储器地址,根据所述第一域的相应权限位控制所述类型的存储器存取。
2.根据权利要求1所述的计算机系统,其中所述页表条目包含物理地址页的基址。
3.根据权利要求2所述的计算机系统,其中所述存储器管理单元配置成组合所述基址和在所述虚拟存储器地址中指定的偏移以产生所述物理地址。
4.根据权利要求3所述的计算机系统,其中所述一组预定义域包括超管理器的域、操作系统的域或应用程序的域中的至少一个,或其任何组合。
5.根据权利要求3所述的计算机系统,其中在所述页表条目中提供的所述基址标识物理存储器的区。
6.根据权利要求5所述的计算机系统,其中所述页表条目包含用于所述第一域中的例程的在所述物理存储器的区中执行读取操作的权限位。
7.根据权利要求5所述的计算机系统,其中所述页表条目包含用于所述第一域中的例程的在所述物理存储器的区中执行写入操作的权限位。
8.根据权利要求5所述的计算机系统,其中所述页表条目包含用于所述第一域中的例程的执行从所述物理存储器的区加载的指令的权限位。
9.根据权利要求1所述的计算机系统,其中所述虚拟存储器地址包含多个虚拟页码,包含最后虚拟页码;且所述存储器管理单元配置成使用所述最后虚拟页码为所述页表编索引以定位所述页表条目。
10.根据权利要求9所述的计算机系统,其中所述页表是最后页表;且所述存储器管理单元进一步配置成使用所述多个虚拟页码中的第一虚拟页码为第一页表编索引以检索标识所述最后页表的第一页表条目;且所述第一页表条目含有用于所述一组预定义域的在存取对应于经由所述最后页表限定的物理地址的存储器区时执行多个类型的操作的权限位。
11.根据权利要求9所述的计算机系统,其中所述存储器管理单元配置成至少部分地基于在所述第一页表条目中指定的权限位控制所述类型的所述存储器存取。
12.一种方法,其包括:
在计算机处理器中执行一组指令期间,接收存取虚拟存储器地址的请求;
在所述虚拟存储器地址转换成物理存储器地址时确定页表条目;
在多个预定义域当中标识含有所述一组指令的执行的执行域;
在所述页表条目中检索为所述执行域指定和为所述请求的类型指定的权限位;以及
基于所述权限位控制存取所述物理存储器地址的所述请求。
13.根据权利要求12所述的方法,其进一步包括:
从所述页表条目中提取基址;
从所述虚拟存储器地址的预定字段中提取偏移;以及
组合所述基址和偏移以产生所述物理存储器地址。
14.根据权利要求13所述的方法,其中所述多个预定义域包含超管理器的域。
15.根据权利要求13所述的方法,其中所述多个预定义域包含操作系统的域。
16.根据权利要求13所述的方法,其中所述基址标识物理存储器的区;且存取所述物理存储器的所述区的请求的类型至少部分地基于所述权限位的值来控制。
17.根据权利要求16所述的方法,其中所述类型包括读取、写入或执行中的至少一个或其任何组合。
18.一种计算装置,其包括:
至少一个寄存器;
至少一个执行单元;以及
存储器管理单元,其配置成管理含有对应于通过预定义域中的例程的执行进行的存储器存取的预定义类型的权限位的页表条目;
其中响应于在所述计算装置中执行以存取虚拟存储器地址的例程,
所述存储器管理单元配置成使用所述页表条目产生物理存储器地址;且
所述计算装置配置成基于对应于所述例程的执行域和使用所述虚拟存储器地址进行的存储器存取类型的权限位来确定是否拒绝存取所述虚拟存储器地址的路由。
19.根据权利要求18所述的计算装置,其中所述存储器存取的预定义类型包括从虚拟地址读取数据、将数据写入到虚拟地址或执行存储于虚拟地址处的指令,或其任何组合。
20.根据权利要求19所述的计算装置,其中所述预定义域包括超管理器的域、操作系统的域或应用程序的域中的至少一个,或其任何组合。
CN201980055578.8A 2018-08-30 2019-08-23 通过在执行域的页表条目中指定的权限的存储器存取控制 Pending CN112602070A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862724896P 2018-08-30 2018-08-30
US62/724,896 2018-08-30
US16/520,292 US10915457B2 (en) 2018-08-30 2019-07-23 Memory access control through permissions specified in page table entries for execution domains
US16/520,292 2019-07-23
PCT/US2019/048020 WO2020046762A1 (en) 2018-08-30 2019-08-23 Memory access control through permissions specified in page table entries for execution domains

Publications (1)

Publication Number Publication Date
CN112602070A true CN112602070A (zh) 2021-04-02

Family

ID=69642263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980055578.8A Pending CN112602070A (zh) 2018-08-30 2019-08-23 通过在执行域的页表条目中指定的权限的存储器存取控制

Country Status (5)

Country Link
US (3) US10915457B2 (zh)
EP (1) EP3844625A4 (zh)
KR (1) KR20210022141A (zh)
CN (1) CN112602070A (zh)
WO (1) WO2020046762A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10884952B2 (en) * 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US11182507B2 (en) 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105164653A (zh) * 2013-05-06 2015-12-16 高通股份有限公司 属性字段的多核页表集合
US20160350019A1 (en) * 2015-05-29 2016-12-01 Intel Corporation Access control for memory protection key architecture

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4386399A (en) 1980-04-25 1983-05-31 Data General Corporation Data processing system
US4409655A (en) 1980-04-25 1983-10-11 Data General Corporation Hierarchial memory ring protection system using comparisons of requested and previously accessed addresses
US4525780A (en) 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4821184A (en) 1981-05-22 1989-04-11 Data General Corporation Universal addressing system for a digital data processing system
US6470436B1 (en) 1998-12-01 2002-10-22 Fast-Chip, Inc. Eliminating memory fragmentation and garbage collection from the process of managing dynamically allocated memory
US7370193B2 (en) 2002-04-27 2008-05-06 Tong Shao Computing system being able to quickly switch between an internal and an external networks and a method thereof
KR100941104B1 (ko) 2002-11-18 2010-02-10 에이알엠 리미티드 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체
US7594111B2 (en) 2002-12-19 2009-09-22 Massachusetts Institute Of Technology Secure execution of a computer program
US8607299B2 (en) 2004-04-27 2013-12-10 Microsoft Corporation Method and system for enforcing a security policy via a security virtual machine
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
US8245270B2 (en) 2005-09-01 2012-08-14 Microsoft Corporation Resource based dynamic security authorization
JP2008077144A (ja) 2006-09-19 2008-04-03 Ricoh Co Ltd 仮想化システム、メモリ管理方法及び制御プログラム
JP4756603B2 (ja) 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
KR101396831B1 (ko) * 2007-03-30 2014-05-21 삼성전자주식회사 메모리 접근 제어 방법
GB2448151B (en) 2007-04-03 2011-05-04 Advanced Risc Mach Ltd Memory domain based security control within data processing systems
US8051263B2 (en) 2007-05-04 2011-11-01 Atmel Corporation Configurable memory protection
US8375195B2 (en) 2009-03-05 2013-02-12 Oracle America, Inc. Accessing memory locations for paged memory objects in an object-addressed memory system
US8190839B2 (en) 2009-03-11 2012-05-29 Applied Micro Circuits Corporation Using domains for physical address management in a multiprocessor system
US8954697B2 (en) 2010-08-05 2015-02-10 Red Hat, Inc. Access to shared memory segments by multiple application processes
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
WO2013082437A1 (en) 2011-12-02 2013-06-06 Invincia, Inc. Methods and apparatus for control and detection of malicious content using a sandbox environment
WO2013174503A1 (en) 2012-05-21 2013-11-28 Eth Zurich Secure loader
US9098427B2 (en) 2012-12-17 2015-08-04 Intel Corporation Controlling access to groups of memory pages in a virtualized environment
US20140331019A1 (en) 2013-05-06 2014-11-06 Microsoft Corporation Instruction set specific execution isolation
US10489309B2 (en) 2014-10-21 2019-11-26 Intel Corporation Memory protection key architecture with independent user and supervisor domains
CA2974394C (en) 2015-01-20 2023-09-05 Ultrata, Llc Distributed index for fault tolerant object memory fabric
US9405515B1 (en) 2015-02-04 2016-08-02 Rockwell Collins, Inc. Computing systems utilizing controlled dynamic libraries and isolated execution spaces
US20160381050A1 (en) 2015-06-26 2016-12-29 Intel Corporation Processors, methods, systems, and instructions to protect shadow stacks
US20170060783A1 (en) 2015-09-01 2017-03-02 Mediatek Inc. Apparatus for performing secure memory allocation control in an electronic device, and associated method
US9852084B1 (en) 2016-02-05 2017-12-26 Apple Inc. Access permissions modification
US20180004681A1 (en) * 2016-07-02 2018-01-04 Intel Corporation Systems, Apparatuses, and Methods for Platform Security
US10255202B2 (en) 2016-09-30 2019-04-09 Intel Corporation Multi-tenant encryption for storage class memory
US10884952B2 (en) 2016-09-30 2021-01-05 Intel Corporation Enforcing memory operand types using protection keys
US10346625B2 (en) 2016-10-31 2019-07-09 International Business Machines Corporation Automated mechanism to analyze elevated authority usage and capability
US20180121125A1 (en) * 2016-11-01 2018-05-03 Qualcomm Incorporated Method and apparatus for managing resource access control hardware in a system-on-chip device
US11055401B2 (en) 2017-09-29 2021-07-06 Intel Corporation Technologies for untrusted code execution with processor sandbox support
US11481241B2 (en) 2018-08-30 2022-10-25 Micron Technology, Inc. Virtual machine register in a computer processor
US20200073822A1 (en) 2018-08-30 2020-03-05 Micron Technology, Inc. Security Configuration for Memory Address Translation from Object Specific Virtual Address Spaces to a Physical Address Space
US10915465B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory configured to store predefined set of domain registers for instructions being executed in computer processors
US10915457B2 (en) 2018-08-30 2021-02-09 Micron Technology, Inc. Memory access control through permissions specified in page table entries for execution domains
US11500665B2 (en) 2018-08-30 2022-11-15 Micron Technology, Inc. Dynamic configuration of a computer processor based on the presence of a hypervisor
US11914726B2 (en) 2018-08-30 2024-02-27 Micron Technology, Inc. Access control for processor registers based on execution domains
US10942863B2 (en) 2018-08-30 2021-03-09 Micron Technology, Inc. Security configurations in page table entries for execution domains using a sandbox application operation
US11182507B2 (en) 2018-08-30 2021-11-23 Micron Technology, Inc. Domain crossing in executing instructions in computer processors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105164653A (zh) * 2013-05-06 2015-12-16 高通股份有限公司 属性字段的多核页表集合
US20160350019A1 (en) * 2015-05-29 2016-12-01 Intel Corporation Access control for memory protection key architecture

Also Published As

Publication number Publication date
US11436156B2 (en) 2022-09-06
US20200073820A1 (en) 2020-03-05
EP3844625A1 (en) 2021-07-07
EP3844625A4 (en) 2022-05-11
KR20210022141A (ko) 2021-03-02
US10915457B2 (en) 2021-02-09
WO2020046762A1 (en) 2020-03-05
US20220414019A1 (en) 2022-12-29
US20210149817A1 (en) 2021-05-20

Similar Documents

Publication Publication Date Title
US11620239B2 (en) Domain register for instructions being executed in computer processors
US11182507B2 (en) Domain crossing in executing instructions in computer processors
US11481241B2 (en) Virtual machine register in a computer processor
US11436156B2 (en) Memory access control through permissions specified in page table entries for execution domains
US11500665B2 (en) Dynamic configuration of a computer processor based on the presence of a hypervisor
KR102570757B1 (ko) 실행 도메인에 대한 페이지 테이블 엔트리에 보안 구성
US20200073822A1 (en) Security Configuration for Memory Address Translation from Object Specific Virtual Address Spaces to a Physical Address Space
US11914726B2 (en) Access control for processor registers based on execution domains

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