首页> 中国专利> 用于正在计算机处理器中执行的指令的域寄存器

用于正在计算机处理器中执行的指令的域寄存器

摘要

描述了与计算机系统中的处理器的域寄存器有关的系统、设备和方法。所述计算机系统具有配置成至少存储在多个预定义的非层次域中分类的例程的指令的存储器。所述处理器在所述域寄存器中存储正在所述处理器中执行的例程的当前域的标识符。所述处理器配置成基于所述域寄存器的内容和为所述预定义的非层次域分别指定的安全性设置来执行安全性操作。

著录项

  • 公开/公告号CN112602062A

    专利类型发明专利

  • 公开/公告日2021-04-02

    原文格式PDF

  • 申请/专利权人 美光科技公司;

    申请/专利号CN201980055202.7

  • 发明设计人 S·沃勒克;

    申请日2019-08-23

  • 分类号G06F9/46(20060101);G06F9/48(20060101);G06F9/455(20060101);G06F9/50(20060101);

  • 代理机构11287 北京律盟知识产权代理有限责任公司;

  • 代理人王龙

  • 地址 美国爱达荷州

  • 入库时间 2023-06-19 10:25:58

说明书

本申请要求以下的提交日期的权益:2019年7月23日提交且名称为“用于正在计算机处理器中执行的指令的域寄存器(Domain Register for Instructions beingExecuted in Computer Processors)”的第16/520,298号美国专利申请;2018年8月30日提交且名称为“用于正在计算机处理器中执行的指令的域寄存器(Domain Register forInstructions being Executed in Computer Processors)”的第62/724,999号临时美国专利申请;2018年8月30日提交且名称为“通过在执行域的页表条目中指定的权限的存储器存取控制(Memory Access Control through Permissions Specified in Page TableEntries for Execution Domains)”的第62/724,896号临时美国专利申请;2018年8月30日提交且名称为“执行域的页表条目中的安全性配置(Security Configurations in PageTable Entries for Execution Domains)”的第62/724,913号临时美国专利申请;及2018年8月30日提交且名称为“处理器寄存器的基于执行域的存取控制(Access Control forProcessor Registers based on Execution Domains)”的第62/724,929号临时美国专利申请,所述申请的全部公开内容由此以引用的方式并入本文中。

技术领域

本文中所公开的至少一些实施例大体上涉及计算机体系结构,且更确切地但不限于用于标识其中指令正执行的域的计算机处理器寄存器。

背景技术

经编程用于计算机的指令可以分层方式结构化。一个层可以为另一层提供资源和服务。例如,超管理器可以创建或提供在计算机硬件组件上实施的虚拟机。操作系统可以使用具有预定义体系结构的计算机中可用的资源来提供资源和服务。由操作系统操作的计算机资源或计算机可以是实际的计算机硬件组件,也可以是由超管理器提供的虚拟机组件。应用程序可以使用操作系统提供的服务和资源提供应用程序特定的功能。

附图说明

在附图的图中作为实例而非限制示出了实施例,在附图中,相似的参考标号指示类似的元件。

图1示出根据一些实施例的具有域寄存器的计算机处理器。

图2示出在图1的计算机处理器的域寄存器中指定当前域的一些技术。

图3示出根据域寄存器控制应用于资源的安全性操作的系统。

图4示出执行域的具有安全性配置的页表条目。

图5示出具有控制安全性操作的域寄存器的计算机系统。

图6示出使用域寄存器控制安全性操作的方法。

具体实施方式

本公开包含计算机处理器中的配置成在不同的非层次域中执行指令时控制安全性操作的域寄存器的技术。

在传统的系统中,可以向指令的不同层(例如,用户应用程序相较于操作系统)给予不同水平的特权和/或信任。通常,保护环是在计算机中构建和实施的,以保护数据和功能免受基于环层次的故障和恶意行为的影响。从最高特权(因而最受信任)到最低特权(因而最不受信任)的环静态地布置成层次。例如,层次可包含一个具有最高特权的操作系统内核环、一个装置驱动器环和一个具有最低特权的应用程序环。较低特权环中的程序或例程可以由相应的专用硬件强制控制门来限制,以存取层次中较高特权环的资源和服务。环之间的门控存取可以提高安全性。

在本公开的技术中,经编程用于计算机系统的指令或例程可以分类成一组预定义非层次的域,例如超管理器的域、操作系统的域、应用程序的域等。域寄存器在处理器中配置成存储正在处理器中执行的指令的当前域的标识符或指示符。域寄存器的内容可控制处理器的各种安全性操作。

例如,当指令的执行引起对存取使用虚拟存储器地址标识的存储器位置的请求时,虚拟存储器地址可以使用一或多个页表转换成物理存储器地址。域寄存器的内容可用于在页表条目中选择用于在当前域中进行的存储器存取的权限位。选定权限位可控制对存取通过虚拟存储器地址标识的存储器单元的请求的处理。

例如,当调用执行具有虚拟存储器地址的例程时,域寄存器的内容可用于在页表条目中选择用于将虚拟存储器地址转换成物理存储器地址的安全位。选择安全位用于在为通过域寄存器标识的当前域提供服务时执行例程。选定安全位控制在被调用例程和调用例程之间分开资源和/或数据的安全性操作。

例如,当指令的执行产生对存取特权寄存器的请求时,域寄存器的内容可用于在例如权限寄存器中选择权限位以供当前域存取特权寄存器。权限位可控制对存取特权寄存器的请求的接受或拒绝。

图1示出根据一些实施例的具有域寄存器117的计算机处理器169。

图1的计算机处理器169耦合到存储器109,所述存储器存储各种预定义的非层次域101、103、……、105的例程,例如超管理器102的域101、操作系统104的域103、应用程序106的域105。物理存储器109可用于存储经编程用于计算机系统的各种例程的数据和指令。

例如,超管理器102的例程可以分类在域A 101中;操作系统104的例程可以分类在另一域B 103中;且应用程序106的例程可以分类在另一域C 105中。超管理器或虚拟机监控器(VMM)创建并管理虚拟机。超管理器可控制基本功能,例如物理存储器和输入/输出(I/O)。

一般来说,例程可包含存储于存储器109中的预编程指令集。例程还可具有存储于存储器109中的输入数据、输出数据和/或临时数据。例程可激活或调用用于服务和/或资源的另一例程。调用例程和被调用例程可以在相同或不同的域(例如,101、103、……、105)中。

图1的处理器169具有执行单元(例如,185),例如算术逻辑单元。处理器169可包含内部高速缓存187作为存储器109的一部分的代理。处理器169具有寄存器183,用于保存用于执行的指令、作为指令的运算元的数据和/或指令执行的结果。

域寄存器117是处理器169的寄存器183中的一个。域寄存器117存储正在处理器169中执行的一组指令(例如,例程)的当前域的标识符或指示符。域寄存器117的内容控制处理器189中的安全性操作,如下文进一步论述。

图2示出在图1的计算机处理器169中的域寄存器117中指定当前域123的一些技术。

在一些实例中,当前域123可以根据用于加载例程191的指令193以供执行的地址195标识。

例如,地址195对于处理器169具有预定宽度(例如,预定数目个位)。地址195可包含表示对象ID 199的部分和在表示由对象ID 199表示的对象内的偏移196的部分。例如,例程191可以是定位在地址195处的对象;且地址195的对象ID 199可用于标识指令193和/或例程191的某些特性;且当前域123可根据所述特性确定。

例如,具有预定值(例如,0)的静态对象ID 199可用于表示操作系统104的内核对象。因此,在地址195中指定的静态对象ID 199可用于标识用于例程191的执行的当前域123。加载用于执行的指令的计算机处理器的存储器地址中的静态对象ID的一些细节和实例可见于2018年7月6日提交且名称为“基于对象的存储器存取中的静态标识(StaticIdentifications in Object-based Memory Access)”的第16/028,840号美国专利申请,此申请的全部公开内容由此以引用的方式并入本文中。

在一些实例中,对象ID 199可包含表示对象类型198的部分。例如,具有值0到3的对象类型可用于标识操作系统的内核对象。例如,具有值4到5的对象类型可用于指定偏移196是具有不同宽度的地址(例如,包含在具有128位的地址195内的64位地址或32位地址)。例如,具有值6到7的对象类型可用于指定对象ID 199的预定部分将解译为本地对象或分割全局地址空间(PGAS)中的对象的标识符。例如,具有值32的对象类型可用于指定对象ID199的其余部分将解译为在服务器(例如,197)中限定的对象的标识符。例如,对象名称服务器197可存储指示由对象ID表示的对象的名称、对象的存取控制参数和/或对象的其它属性121的数据。

例如,用于加载例程191以供执行的地址195的对象ID 199可具有存储在对象名称服务器197中的属性121。属性121可用于确定或推断从地址195加载的例程191的当前域123。

在一些实例中,例程191具有与例程191相关联地存储(例如,在存储器109中、在用于确定指令193的物理地址的页表条目中、在用于进行调用以执行例程的条目表中)的属性121。当加载例程191以供执行时,例程191的属性121用于确定用于执行例程191的当前域123。

例如,对例程191的调用可以经由为含有例程191的域指定的条目表进行。调用指令指定从其条目表中查找调用的入口点以加载例程191的域。因此,当前域123可以基于用于加载例程191的域的条目表。

图3示出根据域寄存器117控制应用于资源(例如,131)的安全性操作的系统。

在图3中,基于在域寄存器117中指定的当前域123及具有分别为预定义域101、103、……、105单独指定的设置111、113、……、115的安全性配置107来实施安全性控制119。安全性控制119应用于资源131,所述资源可以是特权寄存器133、被调用例程135、存储器区137等。

安全性配置107可具有分别用于域101、103、……、105的设置111、113、……、115,而不用依赖于域101、103、……、105当中的静态信任层次。

当处理器169中正执行例程191时,域寄存器117使安全性控制119选择与匹配当前域123的域(例如,101、103、……或105)预先相关联的设置(例如,111、113、……或115)。选定设置(例如,111、113、……或115)供安全性控制119用于自定义资源131的安全性操作。

例如,当处理器169中的例程191的指令193的执行请求对存储器区137的存储器存取时,使其预先相关联域(例如,101、103、……、105)与当前域123匹配的选定设置(例如,111、113、……或115)供安全性控制119用于确定存储器存取是否被准许。

例如,存储器109中的不同区(例如,137)可以配置有不同的安全性配置(例如,107);并且每个安全性配置(例如,107)可包含用于不同域101、103、……、105的不同权限(例如,111、113、……、115)。例如,安全性配置107可以在用于虚拟存储器地址的逻辑到物理地址转换的页表条目中指定,使得存储器区的结构可对应于存储器页结构,如下文结合图4进一步论述。

例如,物理存储器109可以划分成多个区;每个区(例如,137)可以是用于存储器管理的物理存储器109的页或物理存储器109的一组页。

例如,典型的存储器区137可具有指定用于所述一组预定义域101、103、……、105的相应安全性配置107。安全性配置107显式地标识每个域101、103、……、105的权限(例如,111、113、……、115)。因此,存取存储器区137的例程的特权不取决于域102、103、……、105的层次。

在一个实例中,当在当前域123中执行的例程191使存储器存取存储器区137以进行指令读取、写入或执行时,域寄存器117使安全性控制119检查在对应于当前域123的设置111、113、……或115中指定的权限。是否针对特定操作类型(例如,读取、写入、执行)通过在当前域123中执行例程191的指令193来阻止(或拒绝)存取存储器区137可基于根据存储器区137的当前域123且针对所述操作类型选定的相应权限位来确定。用于对存储器区137的存储器存取的权限的一些细节和实例可见于2018年8月30日提交且名称为“通过在执行域的页表条目中指定的权限的存储器存取控制(Memory Access Control throughPermissions Specified in Page Table Entries for Execution Domains)”的第62/724,896号美国专利申请,此申请的全部公开内容由此以引用的方式并入本文中。

一般来说,相同域(例如,103)的不同例程可配置成在不同存储器区中,且因此配置成对于相同域(例如,103)具有不同权限和安全性设置。

此外,例程可配置成存储其数据在不同存储器区(例如,137)中的不同部分,且因此配置成具有从相同域(例如,101、103、……或105)存取的不同权限。

在另一实例中,当在当前域123中执行的例程191调用存储于存储器区137中的被调用例程135以供执行时,域寄存器117使安全性控制119检查在对应于当前域123的设置111、113、……或115中指定的权限。是否部署安全措施以保护调用例程191的资源不受被调用例程135影响和/或保护被调用例程135的资源不受调用例程影响可基于为当前域123和存储器区137指定的相应权限位来确定。

安全措施可包含沙盒化。沙盒化一般包含隔离一组指令的执行(例如,应用程序)与某些系统资源和/或其它指令/程序集的计算机安全措施。例如,沙盒化可以使用影子堆栈结构(shadow stack structure)来实施,其中调用例程和被调用例程配置成使用单独的堆栈和与堆栈有关的控制寄存器,调用例程可能无法存取指派给被调用例程的堆栈,且被调用例程可能无法存取指派给调用例程的堆栈。影子堆栈结构的一些细节和实例可见于2018年8月30日提交且名称为“执行域的页表条目中的安全性配置(SecurityConfigurations in Page Table Entries for Execution Domains)”的第62/724,913号美国专利申请,此申请的全部公开内容由此以引用的方式并入本文中。

例如,典型存储器区137的安全性配置107可具有为所述一组预定义域(例如,101、103、……、105)分别指定的沙盒化设置(例如,111、113、……、115)。沙盒化配置107显式地标识对执行存储在区137中的被调用例程135的调用是否需要沙盒化操作。从在不同域101、103、……、105中执行的例程调用执行相同例程135可具有不同设置111、113、……、115;并且设置111、113、……、115指定来自各个域101、103、……、105的调用是否需要沙盒化(例如,保护被调用例程135和调用例程191不受彼此影响)。因此,基于在域寄存器117中标识的当前域123及配置成用于相应域101、103、……、105的显式设置(例如,111、113、……、115),沙盒化操作可以选择性地应用于执行存储于存储器区137中的被调用例程135,而不用依赖于域102、103、……、105的预定义层次。

例如,当前域123中的调用例程191可调用被调用例程135。是否针对执行存储于存储器区137中的被调用例程135的调用激活沙盒化操作可基于为匹配存储器区137的当前域123的相应域(例如,101、103、……或105)指定的沙盒设置(例如,111、113、……或115)来确定。因此,沙盒化操作可以独立于被调用例程135的域和当前调用域123之间的相对层次来激活。

例如,存储于存储器区137中的例程的沙盒设置107可以在用于虚拟存储器地址的逻辑到物理地址转换的页表条目中指定,使得存储器区的结构可对应于存储器页结构,如下文结合图4进一步论述。

在另一实例中,当在当前域123中执行的例程191请求存取特权寄存器133时,域寄存器117使安全性控制119检查在特权寄存器133的设置111、113、……或115中指定的权限。是准许还是阻止存取可基于为当前域123和特权寄存器133指定的相应权限位来确定。

例如,特权寄存器133可针对不同域101、103、……、105分别具有不同权限111、113、……、115。当在当前域123中执行的指令请求存取特权寄存器133时,域寄存器117使安全性控制119选择对应于当前域123的相应权限(例如,111、113、……或115)以控制存取。

寄存器133可具有分别为域101、103、……、105单独指定的显式权限111、113、……、115(例如,非层次),而不用依赖于域102、103、……、105的预定义信任层次。

在一些实例中,可以存取特权寄存器133以用于不同操作类型,例如读取、写入、执行等。特定域(例如,101、103、……或105)存取特权寄存器133的权限(例如,111、113、……或115)可针对相应操作类型(例如,读取、写入和/或执行)而具有单独的权限位。

安全性配置107可配置成允许在一个域(例如,101、103、……、105)中运行的指令存取寄存器133以用于一种操作类型(例如,读取),但不用于另一操作类型(例如,写入)。

安全性配置107可配置成允许在一个域(例如,103)中执行的指令经由域(例如,103)的一个权限设置(例如,113)存取寄存器(例如,133),但是禁止在另一域(例如,101)中运行的相同指令经由所述域(例如,101)的另一并行设置(例如,111)存取寄存器133,即使在传统的保护环中,不被允许的域(例如,101)可能具有比所允许的域(例如,103)更高的特权(且因此更受信任)。

在一个实施方案中,安全性配置107在特权寄存器133的处理器中硬接线。在另一实施方案中,安全性配置107可以在计算机系统的启动/自举过程期间经由处理器的寄存器133的固件设置。在另一实施方案中,安全性配置107可以在计算机系统的正常操作期间经由特权软件改变。

例如,特权寄存器133的安全性配置107可以在处理器169从在一个域(例如,101)中运行程序切换到在另一域(例如,103)中运行程序时改变。

例如,特权寄存器133的安全性配置107可以根据计算机系统从运行一个例程切换到另一例程时的请求改变,其中所述例程可以在相同域(例如,101)中。

例如,特权寄存器133的安全性配置107可以配置于权限寄存器中,所述权限寄存器使用存储在权限寄存器中的权限位控制对特权寄存器133的存取;并且权限寄存器的内容可以通过针对当前计算调整/自定义计算机系统的安全等级的经授权过程来进行更新。替代地,不同域101、103、……、105的权限位可以在分别对应于域101、103、……、105的单独寄存器中指定。权限寄存器的一些细节和实例可见于2018年8月30日提交且名称为“处理器寄存器的基于执行域的存取控制(Access Control for Processor Registers based onExecution Domains)”的第62/724,929号美国专利申请,此申请的全部公开内容由此以引用的方式并入本文中。

因为图3的安全性控制系统不依赖于预定义域信任层次(即为非层次的),所以它可以提供比常规保护环更好的灵活性和更精细的控制粒度。

图4示出执行域(例如,101、103、……、105)的具有安全性配置107的页表条目153。

例如,页表条目中的安全性配置107可以是存取通过页表条目153标识的存储器区137的权限和/或调用存储于通过页表条目153标识的存储器区137中的例程的沙盒化配置。

虚拟地址空间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中的区137。虚拟地址141的偏移147用作存储器109中的页或区137的对应偏移147。基址157和偏移147的组合提供对应于虚拟地址141的物理地址159。

在图4中,页表条目153不仅指定页或区137的基址157,而且还为页或存储器区137指定安全性配置107,例如将数据读取到对应于基址157的存储器区137中的权限、用于将数据写入到存储器区137中的权限、用于执行存储于存储器区137中的指令的权限、用于调用存储于存储器区137中的例程的沙盒化要求。安全性配置107可具有分别用于图1和3中所示的预定义非层次域101、103、……、105的单独设置111、113、……、115。域寄存器117中的当前域137控制将设置111、113、……、115中的哪一个用于当前存储器存取或对存储于存储器区137中的例程135的当前调用。

任选地,页表条目153可指定物理存储器页的其它属性155,例如页中的数据是否有效、页是否在主存储器中、页是否无效(例如,物理存储器页中的数据的改变尚未相对于存储器区137被刷新到长期内存/存储装置)。例如,属性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的内容都可以图4中所示的方式配置成为不同域101、103、……、105提供安全性配置107,以便存取对应于基址157的页/存储器区137和/或存储于存储器区137中的例程。

在图4中,页或区137的安全性配置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可包含分别用于所述一组域101、103、……、105的一组沙盒设置位(例如,111、113、……、115)。当对应于域寄存器117中的当前域123的沙盒设置位(例如,111、113、……或115)设置为具有第一值(例如,1或0)时,实施从当前域123中的例程191到存储在区137中的被调用例程135的当前调用以使用沙盒化操作保护调用例程191和被调用例程135不受彼此影响(例如,通过在堆栈使用中使用影子堆栈来分开调用程序和被调用程序)。当对应于域寄存器117中的当前域123的沙盒设置位(例如,111、113、……或115)设置为具有第二值(例如,0或1)时,实施从当前域123中的例程191到存储于存储器区123中的被调用例程135的调用,而不使用沙盒化操作将调用程序和被调用程序彼此隔离(例如,不使用影子堆栈)。

任选地,安全性配置(例如,107)是在底层页表151中指定而不是在较高层页表(目录)中指定的。

图5示出具有控制安全性操作的域寄存器117的计算机系统。

例如,图5的计算机系统可任选地具有存储用于通过图1和3中所示的预定义域101、103、……、105中的例程存取由图4的页表条目153标识的存储器区的安全性配置107的页表(例如,151)。

例如,图5的计算机系统可具有存储用于存取图1和3中所示的预定义域101、103、……、105的特权寄存器133的安全性配置107的一或多个权限寄存器。

处理器169的域寄存器117存储当前域123的标识符。域寄存器117的内容选择安全性配置107中对应于当前域123的一组可应用设置。

图5的计算机系统具有经由一或多个总线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中检索的数据。

在图5中,主机系统165包含存储器管理单元(MMU)181和处理器169。处理器169具有执行单元(例如,185),例如算术逻辑单元。处理器169具有寄存器183(例如,133),以保存用于执行的指令、作为指令的运算元的数据和/或指令执行的结果。处理器169可具有内部高速缓存187作为存储器系统161的一部分的代理。

在一些实例中,主机系统165可包含在同一硅裸片上集成为中央处理单元(CPU)的多个处理核心的多个处理器(例如,169)。

经编程用于在处理器169中执行的例程可以一开始存储于存储器系统161中。例程可包含用于超管理器102、操作系统104和应用程序106的指令。一开始存储在存储器系统161中的例程可以加载到内部高速缓存187和/或寄存器183(例如,133)以供在执行单元185中执行。

例程的运行实例形成超管理器102、操作系统104和应用程序106的执行167。在一些实例中,不使用超管理器102;并且操作系统104控制硬件组件(例如,存储器系统161、外围输入/输出装置和/或网络接口卡),而不用超管理器。

超管理器102、操作系统104和/或应用程序106的执行167使用在一或多个虚拟存储器空间(例如,127)中限定的虚拟存储器地址(例如,141)存取存储器137(例如,在存储器组件171、……、173中)。可以使用至少一个页表151(例如,如图4中所示)将在执行中使用的虚拟存储器地址(例如,141)转换成存储器组件(例如,171、……、173)的物理存储器地址(例如,159)。

如图1中所示,超管理器102、操作系统104和应用程序106的例程的执行可以组织成多个域101、103、……、105。对于执行域101、103、……、105中的每一个和通过页表条目153标识的存储器区137,页表条目153标识用于在预定义操作类型(例如,读取、写入、执行等)中存取区137的安全性配置位的设置(例如,111、113、……、115)。对应安全性配置(例如,107)的配置位控制相应执行域(例如,101)中的对应类型的存储器存取和/或控制用于隔离调用例程(例如,191)和被调用例程(例如,135)的沙盒化操作。

特权寄存器133的安全性配置107可以存储在单独的权限寄存器中。权限寄存器中的每一个与域(例如,101、103、……、105)预先相关联。权限寄存器存储用于从对应域(例如,101、103、……或105)存取特权寄存器133的权限位。权限寄存器中的不同权限位可以针对不同特权寄存器(例如,133)配置。在一些实例中,特权寄存器133可针对不同存取类型(例如,读取、写入、执行)具有权限寄存器中的多个权限位。

替代地,特权寄存器133的权限位可以在相同权限寄存器中指定。此外,不同特权寄存器(例如,133)的权限位可以存储在相同权限寄存器的不同部分中。

图6示出使用域寄存器117控制安全性操作的方法。

例如,图6的方法可以在图5的计算机系统中使用为图1和3中所示的执行域101、103、……、105指定图3的安全性配置107的图4的页表151执行。

在框201处,计算机系统(例如,在图5中示出)将经编程用于系统的例程(例如,191、137)分类到多个域101、103、……、105中。

例如,例程(例如,191)的域101、103、……、105可以经由用于加载例程(例如,191)的地址195或经由与例程(例如,191)相关联地存储的属性(例如,121)来标识。

在框203处,计算机系统的处理器169接收执行例程(例如,191)的请求。

在框205处,处理器169确定例程(例如,191)的执行域123。

例如,上文结合图2所论述的技术可用于确定加载到处理器169中以供执行的例程191的当前域123。

在框207处,处理器169在计算机系统的处理器的域寄存器117中存储执行域123的标识达例程191在处理器169中执行的持续时间。

在框209处,处理器169在处理器169中执行例程(例如,191)的指令时至少部分地基于存储在域寄存器171中的当前域123的标识而执行安全性操作。

安全性操作的实例包含响应于执行例程191的指令193而控制用于读取、写入和/或执行的对存储器区(例如,137)的存取、选择性地部署隔离调用例程191和被调用例程(例如,135)的内容和/或资源的沙盒化操作、控制对特权寄存器133的存取。存储在域寄存器171中的当前域123的标识可用于选择对应于当前域123的安全性配置107的子集;且选定子集用于资源131的安全性控制(119),例如特权寄存器133、存储器区137、存储于存储器区137中的被调用例程135等。

本文所公开的技术可至少适用于其中处理器与存储器分隔开且处理器经由通信总线和/或计算机网络与存储器和存储装置通信的计算机系统。此外,本文所公开的技术可适用于其中处理能力集成于内存/存储装置内的计算机系统。例如,包含典型处理器的执行单元和/或寄存器的处理电路可以在存储器媒体的集成电路和/或集成电路封装内实施以执行存储器装置内的处理。因此,如上文所论述和附图中所示的处理器(例如,101)不一定是冯·诺伊曼体系结构中的中央处理单元。处理器可以是集成于存储器内以克服冯·诺依曼瓶颈的单元,所述瓶颈因为由根据冯·诺伊曼体系结构分开配置的中央处理单元和存储器之间的数据移动的时延造成的吞吐量限制而限制了计算性能。

本公开的描述和附图是说明性的,且不应被解释为限制性的。描述了许多具体细节,以提供透彻的理解。然而,在某些实例中,为了避免模糊描述,不描述众所周知的或常规的细节。对本公开中的一个或某一实施例的引用不一定是对同一实施例的引用;并且这种引用意味着至少一个。

在前述说明书中,已经参考本公开的特定示例性实施例描述了本公开。显而易见的是,在不背离所附权利要求书所阐述的更广泛的精神和范围的情况下,可以对其进行各种修改。因此,说明书和附图应被视为说明性的而不是限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号