基于系统状态的存储器保护

文档序号:1652137 发布日期:2019-12-24 浏览:33次 >En<

阅读说明:本技术 基于系统状态的存储器保护 (Memory protection based on system state ) 是由 L·W·多弗 于 2018-03-23 设计创作,主要内容包括:在一些实例中,揭示用于基于存取规则保护经识别地址处的存储器的存储器系统、计算系统及机器可读媒体,所述存取规则界定对所述经识别存储器地址的准许存取,所述准许存取取决于存储在所述存储器系统中的一或多个寄存器的值。在一些实例中,所述寄存器(例如,平台配置寄存器)的所述值可取决于其中安装所述存储器系统的计算装置的状态。(In some examples, memory systems, computing systems, and machine-readable media are disclosed for protecting memory at an identified address based on access rules that define permitted access to the identified memory address that is dependent on values of one or more registers stored in the memory system. In some examples, the value of the register (e.g., a platform configuration register) may depend on a state of a computing device in which the memory system is installed.)

基于系统状态的存储器保护

优先权申请案

本申请案主张2017年3月24日提出申请的序列号为15/469,287的美国申请案的优先权权益,所述美国申请案以全文引用的方式并入本文中。

技术领域

各实施例涉及经改进存储器系统。一些实施例涉及通过基于控制寄存器的可反映系统状态测量的值来限制存储器系统处对一或多个位置的存储器存取的经改进计算机系统安全性。

背景技术

多数形式的计算机系统包含存储器系统,所述存储器系统包含用于暂时及长期存储指令(例如,程序)、数据及由计算机系统使用或产生的其它信息的一或多个类型的存储器结构。术语“计算机系统”在本文中用于广泛地指代使用一或多个微处理器、微控制器及/或数字信号处理器或者具有运行“程序”的能力的其它装置(本文中将所有此类装置称为“处理器”)的系统;其中“程序”是任何组的可执行机器代码指令(且因此包含用户级应用程序以及系统导向应用程序或守护程序)。本文中参考图5论述不同形式的计算机系统的实例。

在许多此类计算机系统中,在装置被供电时使用易失性存储器来存储当前执行的计算机程序、数据及处理器需要的其它信息。常用易失性存储器的实例包含同步动态随机存取存储器(SDRAM)、双数据速率SDRAM(DDR)等等。类似地,在许多此类计算系统中,非易失性存储器用于长期或永久存储程序、所产生或所保持的数据或其它信息等。非易失性存储器可包含非易失性存储器存储器件的许多不同配置中的任何一或多者,其中快闪存储器是最常见的,但也使用其它类型的装置,包含相变存储器(PCRAM)(呈各种形式)、磁性存储器(MRAM)及铁电存储器(FeRAM)等,在一些系统中,非易失性存储器的至少某一部分可呈固态驱动器(SSD)的形式以服务于常规磁性硬盘驱动器(HDD)的长期可重写存储功能,且通常通过使用NAND快闪存储器与控制功能性的组合来实施。计算机系统还可依赖于其它存储机构,例如,HDD、光学媒体(例如,CD-ROM、CDR/RW-ROM及DVD-ROM)等。

具体实施方式

攻击者尝试损害计算机系统的一种常见方式是通过改变易失性或非易失性存储器中的存储器位置的存储器内容。举例来说,如果攻击者要毁坏操作系统或UEFI固件的启动级代码,其可重新引导处理器的控制流以执行其自己的代码。这些低级攻击不可由在计算机系统上运行的标准OS当前防病毒或攻击检测软件检测。除对指令流的劫持控制外,攻击者还可能尝试读取敏感信息(例如,编密密钥)及可用于从计算装置的用户盗取个人信息或可用于计算机系统的未来开发的其它数据。

在一些实例中,揭示用于根据一组一或多个存取规则且基于一或多个控制寄存器的值限制对经识别地址处的存储器的存取的存储器系统、计算系统及机器可读媒体。存取规则可存储于存储器系统中且可规定特定控制寄存器为特定值以便以特定方式存取(例如,读取、读/写)特定存储器位置。控制寄存器可存储于存储器系统中且可具有关于用于设定、改变或复位其值的操作的限制。在接收到存储器存取请求(例如,读/写请求)后,存储器系统控制器可即刻在给定当前控制寄存器的状态的情况下评估存取规则以确定是否允许存取。通过在存储器系统层级处实施存取控制,可保护存储器免受安装于计算机系统上的恶意应用程序损坏。

在一些实例中,可基于其中安装存储器系统的计算系统的一或多个组件的状态而设定控制寄存器的值。举例来说,在计算系统的处理器上执行的受信任应用程序可进行计算系统测量且接着基于测量修改(例如,扩展)寄存器中的一或多者。举例来说,在启动时间期间,特定存储器位置可为可存取的,但可通过修改控制寄存器而变成不可存取的,以保护存储器位置免于修改。由于此过程是由存储器系统中的存储器控制器基于内部存储的存取规则及控制寄存器而控制,因此存储器位置可在比操作系统层级低的层级处由存储器系统自身锁定而不被存取,从而使得攻击者更难以获得对重要存储器位置的存取。在一些实例中,控制寄存器中的一或多者可为平台配置寄存器(PCR),其是与SHA-1或SHA-2摘要长度相同的存储寄存器。其可用于保存加总呈现到其的测量结果的值。PCR通常与受信任平台模块(TPM)相关联。

作为实例,在系统启动时,控制寄存器可设定为0。实例性存取规则可在控制寄存器中的特定一者为0时允许对存储器的特定区的存取。存储器的所述特定区可存储启动加载程序或其它敏感操作系统代码。当特定寄存器为0时,可存取存储器以允许读取及写入启动加载程序。一旦启动加载程序完成加载操作系统,便可扩展寄存器(例如,通过启动加载程序、操作系统或其它受信任应用程序),使得其不再为零且存储器不再可存取。

为防止恶意代码将控制寄存器复位,在一些实例中,可限制可对控制寄存器执行的操作。举例来说,存储器系统可防止直接设定控制寄存器。替代地,存储器系统可仅允许扩展控制寄存器。扩展控制寄存器包括利用寄存器的当前值及所提供值作为输入来确定控制寄存器的新值。举例来说,寄存器的当前值及所提供值可为到单向数学公式的输入,所述单向数学公式输出寄存器的新值。“单向”数学公式包括容易地从输入推出结果但难以或不可能从结果反推出输入的公式。实例是SHA散列,例如SHA1或SHA2。所提供值可由在计算机系统的处理器上执行的软件应用程序提供,且可包括由计算机系统的软件应用程序进行的系统测量。这些软件应用程序可使用经由存储器系统及计算机系统的其它组件使用来通信的通信接口(例如,SATA、IDE、SCSI)发送到存储器装置的请求消息、通过请求扩展寄存器而提供新值。由于控制寄存器的值取决于控制寄存器的先前值以及新值,因此更难以操纵控制寄存器的值(例如,以允许)存取。

举例来说,在系统开启时,可将控制寄存器初始化为零(或另一初始值)。在系统启动时的一或多个点期间,可由操作系统的组件或在其中安装存储器系统的计算机系统上执行的另一受信任应用程序进行所述计算机系统的测量。操作系统或受信任应用程序可随每一测量扩展控制寄存器。如果选择测量的内容使得未受损系统在系统启动时的每一点处产生相同测量,那么可知晓在每一点处控制寄存器的预期值。接着,可围绕这些预期值设计存取规则,以便取决于计算机系统处于启动过程中的哪一点而提供对存储器位置的存取。因此,在启动过程中的一个时间可存取的存储器可由于处于不同启动阶段或由于计算机系统上的软件的未授权(或无意)改变而转变(例如,通过扩展寄存器)为不可存取的(例如,不能写入、不能读取或两者)。由于控制寄存器是仅可扩展且不能直接设定的,因此将控制寄存器转变回到先前状态可为困难或不可能的。

在一些实例中,为了扩展控制寄存器:

新寄存器值=SHA-1(旧寄存器值|新数据)

在此实例中,由应用程序提交的新数据(扩展值)可为与旧寄存器值(例如,在设定新值之前的寄存器值)进行散列运算及组合的安全散列算法-1(SHA-1)。举例来说,如果寄存器是20字节寄存器且新数据是20字节,那么通过串接创建40字节暂时值,其中字节0到19存储SHA-1(旧数据)且字节20到39存储新值。接着,针对此40字节暂时值计算SHA-1散列。当SHA-1输出20个字节时,接着将新值复制到寄存器中。

可还与本文中揭示的控制寄存器一起使用其它SHA变体。举例来说,SHA-2(例如,SHA-256、SHA-384及SHA-512)。在这些实例中,PCR可具有不同数目个字节且扩展操作可使用不同大小暂时存储器(例如,以适应较大散列)。

如所述,可基于由计算装置上的一或多个应用程序进行的计算机系统测量而扩展控制寄存器。在一些实例中,为了扩展寄存器(或以其它方式设定寄存器),所述应用程序必须是受信任应用程序。举例来说,所述应用程序可需要能存取编密密钥以将扩展控制寄存器的请求加密,或者以所需密钥将所述请求签名。控制器接着基于将消息成功解密或通过成功验证签名而验证应用程序是受信任的。在其它实例中,受信任应用程序可以其私钥将请求签名,且控制器可具有针对受信任应用程序的可接着用于验证签名的预安装公钥(例如,由受信任制造商或其它第三方发布)。

在一些实例中,计算机系统的测量可为存储于各种存储器区(例如,非易失性存储器)中的值的散列以确保预期应用程序或应用程序群组以其预期状态存在。在其它实例中,计算机系统的测量可为处理器状态、驻存于非易失性存储器件中的应用程序的散列(以检测篡改)或状态值(例如,受信任应用程序可传递特定预定义值以用于扩展寄存器)。

现在翻到图1,展示根据本发明的一些实施例的实例性存储器系统1010的示意图。存储器系统1010包含第一存储器阵列1020及第二存储器阵列1070。在所描绘实例中,第二存储器阵列1070可由控制器1050作为控制器1050的一部分或作为通信地耦合到控制器1050的单独组件来使用。举例来说,第二存储器阵列1070可形成于一或多个半导体裸片上,所述一或多个半导体裸片形成控制器1050的一部分。在许多实例中,第一存储器阵列1020将为非易失性存储器阵列,且第二存储器阵列1070将为易失性存储器阵列,尽管也可利用非易失性存储器阵列。在一些实例中,第一存储器阵列1020将以快闪存储器装置(例如,离散快闪存储器装置或基于快闪存储器的SSD)的形式存在。

在一些实例中,第一存储器阵列1020及第二存储器阵列1070两者以及控制器1050可形成于单个半导体裸片上;而在其它实例中,其等可包含于两个或多于两个半导体裸片上。所描述结构可保持于一或多个印刷电路板上或者一或多个模块或单元内(例如,多芯片模块、PCB的组合件、SSD中等)。所述存储器系统可通过接口1140通信地耦合到系统处理器及(可能地)计算系统的其它组件。

存储器系统1010可安装于计算机系统(例如,计算机系统5000)中或以其它方式通信地耦合到所述计算机系统。存储器系统1010包含经构造以将数据存储于一或多个可寻址存储器存储位置中的第一存储器阵列1020(例如,存储器电路)。在一些实例中,第一存储器阵列1020可包括非易失性存储器件。第一存储器阵列1020可在存储器系统1010是SSD的情形中包括一或多个NAND电路,或者在存储器系统1010是HDD的情形中包括一或多个磁盘片,等等。第一存储器阵列1020可存储一或多个存取规则1030且包含其它存储空间1040(例如,用户数据、软件应用程序、操作系统等等)。第一存储器阵列1020可提供多个可寻址存储器存储位置。针对存取规则1030及其它存储空间1040所展示的位置是示范性的,且其等可呈任何次序且可位于第一存储器阵列1020中的任一位置中。如先前所述,存取规则1030可规定针对第一存储器阵列1020(或另一第一存储器阵列)中的存储器地址的存储器存取限制,所述存储器存取限制可取决于一或多个控制寄存器的值(例如,控制寄存器1080到1100的值1110到1130)。

实例性存储器系统1010包含控制器1050。控制器1050可以各种形式(举例来说,作为硬件处理器、以微码形式、以提供用于硬件处理器的指令的软件的形式、作为现场可编程门阵列(FPGA)、以可编程逻辑块的形式等等)实施。控制器1050可实施通信协议的一部分,计算机系统与存储器系统1010利用所述通信协议进行通信。举例来说,此通信协议可为(举例来说)串行AT附接(SATA)接口、小型计算机系统接口(SCSI)接口、高速***组件互连(高速PCI)接口(例如,通过非易失性存储器主机控制器接口规范–NVMe接口)等等。可由计算机系统的系统处理器1150基于一或多个应用程序的应用程序指令1160而经由接口1140(例如,系统互连件或总线)发送尝试读取或向存储器系统1010写入数据的命令。接口1140可为SATA接口、SCSI接口、高速PCI接口等等。在其它实例中,所述接口可在存储器系统内部。举例来说,SSD的微芯片当中的内部通信协议。控制器1050可接收及验证请求且将所述请求转换为致使在第一存储器阵列1020中实施读取/写入的信号。

第二存储器阵列1070可包括由控制器1050使用来处理所接收存储器命令的工作存储器(在一些实例中,易失性存储器)。第二存储器阵列1070可包含一或多个控制寄存器(展示为PCR)1080、1090、1100(从1到N寄存器),其各自具有相关联值1110、1120及1130。值可为任何数目个位大小,例如,8个位、16个位、20个位、32个位、40个位、64个位、128个位等等。在一些实例中,设定、复位及扩展寄存器的值的能力由控制器1050限制。举例来说,请求设定、复位或扩展的应用程序可需要提供一或多个凭证、使用一或多个编密密钥(例如,以数字签名的形式,或通过将请求加密)等等。在一些实例中,甚至受信任应用程序可局限于执行特定操作(例如,将寄存器复位)。举例来说,甚至受信任应用程序可仅被允许扩展寄存器。

在许多实例中,所描述存取规则1030包含取决于一或多个寄存器(例如,控制寄存器1080到1100中的一或多者)的值的条件表达式及针对一或多个地址的许可(例如,读取、写入、读写、无存取)。在许多实例中,取决于条件表达式评估为真实还是不真实,存取规则将有效或无效。一个实例性存取规则可为:如果控制寄存器1080值1110等于0,那么地址0xE000:0000到0xFFFF:000F之间的存储器为只读的,否则,所述存储器不可存取(无读取或写入存取)。另一实例,存取规则可规定:如果控制寄存器1080值1110不等于0,那么地址0xE000:0000到0xFFFF:000F之间的存储器为读写的,否则,所述存储器不可存取。在其它实例中,存取规则可较复杂,举例来说取决于多个条件表达式(如可在多个寄存器中反映,举例来说)。

存取规则可由提供一或多个凭证、使用一或多个编密密钥(例如,以数字签名的形式,或通过将请求加密)等等的一或多个受信任应用程序设定。在一些实例中,存取规则可由制造商或另一受信任方(例如,IT管理员)预配置于存储器系统上。在一些实例中,存取规则1030可经配置使得控制寄存器可控制对存取规则1030的存取。举例来说,在制造时,可将非易失性存储器件中的控制寄存器设定为0。在此寄存器为0时,存取规则1030可为可修改的。首先启动的操作系统可配置存取规则(例如,根据已知良好测量设定存取规则及许可)且接着修改非易失性存储器件中的寄存器,从而锁定规则。

现在翻到图2,展示根据本发明的一些实施例的处理控制寄存器命令(例如,PCR寄存器命令)的方法2000的流程图。图2可由存储器系统(例如,存储器系统1010)的控制模块(例如,控制模块1060)执行。在操作2010处,存储器系统可接收控制寄存器管理命令。所述命令可来源于在计算装置的处理器上运行的应用程序(例如,可跨越系统总线发送管理命令)。处理器及应用程序可跨越通信总线或接口(例如,SATA接口)通信地耦合到存储器系统。寄存器管理命令可规定控制寄存器、管理命令及一或多个自变量。控制寄存器管理命令是使用一或多个自变量对所规定寄存器执行由管理命令规定的操作的请求。实例性命令包含将控制寄存器复位、读取控制寄存器、更新控制寄存器值(例如,扩展控制寄存器)及更新存取规则。

在操作2020处,确定是寄存器管理命令的目标的寄存器–例如,通过剖析控制寄存器管理命令。在操作2030处,存储器系统可验证请求者具有执行操作的授权。如所述,这可基于随请求包含的编密签名。在这些实例中,操作2030可包括验证随寄存器管理命令包含的签名。在其它实例中,寄存器管理命令(或其一部分)可以特定密钥加密。在这些实例中,操作2030可包括尝试将寄存器管理消息解密。在这些实例中,操作2030可在操作2020之前发生以允许剖析消息以确定目标寄存器。

在操作2040处,存储器系统可确定所请求命令(例如,依据控制寄存器管理命令中的参数)。在一些实例中,在操作2030处的授权可取决于命令类型,即,一些命令可需要其它命令不需要的特定等级的授权。另外,在一些实例中,授权是不必要的。图1中所展示的寄存器管理命令类型仅是示范性的,且受益于本发明的所属领域的技术人员将了解,可实施较少或较多命令。

如果命令是控制寄存器复位,那么在操作2050处,控制模块可将控制寄存器复位到初始值(例如,0)。在一些实例中,控制寄存器复位命令可仅在系统通电时是有效的。在操作2090处,可将指示操作是否成功的结果返回到调用者。如果命令是读取控制寄存器的值的请求,那么在操作2060处,读取控制寄存器且可在操作2090处返回值。在操作2070处,如果请求是更新控制寄存器值,那么可基于随请求包含的自变量而更新寄存器。举例来说,可直接设定控制寄存器或可基于自变量扩展控制寄存器。在操作2090处,可返回结果(成功或失败)。在一些实例中,可随结果返回经扩展的寄存器的新值。在操作2080处,如果请求是更新存取规则,那么可更新存取规则且在操作2090处返回结果。

图3展示根据本发明的一些实施例的处理存储器存取请求的方法3000的流程图。图3可由存储器系统(例如,存储器系统1010)的控制器(例如,控制器1050)执行。在操作3010处,存储器系统可接收存储器存取请求(例如,读取或写入请求)。所述请求可来源于在计算装置的处理器上运行的应用程序。处理器及应用程序可跨越通信总线或接口(例如,SATA接口)通信地耦合到存储器系统。请求可规定存储器地址、命令(例如,读取或写入)及一或多个自变量(例如,在写入的情形中,新值)等等。

在操作3020处,可读取存取规则以确定为请求的对象的存储器地址是否受存取规则保护。在操作3030处,如果确定存储器地址不受存取规则保护,那么在操作3050处可处理存储器存取。如果存储器地址是存取规则的对象,那么在操作3040处做出寄存器值是否符合存取规则(例如,其在给定存取规则的情况下并非适当值)的确定。如果寄存器值符合存取规则,那么在操作3050处可处理存储器存取。在一些实例中,不同类型的存取可具有不同规则。举例来说,读取可具有与写入不同的存取规则。如果寄存器处于存取规则规定的适当状态中,那么在操作3050处,可正常地处理存储器存取。如果寄存器值不符合存取规则,那么在操作3060处可拒绝存储器存取。

应注意,虽然PCR及系统测量通常与受信任保护模块(TPM)相关联,但TPM仅能够在测量不像预期的那样时警告计算装置上的软件。软件可进行校正动作,但损坏可能已经造成,且此外,如果攻击影响操作系统以下的低级代码,那么检查TPM的代码可受影响。通过将PCR放置于存储器系统上且基于PCR的状态控制对存储器地址的存取,存储器系统通过从决策制定过程移除易受攻击的系统软件而允许保护敏感区免受存储级处的攻击。因此,PCR可不仅用于检测入侵,存储器系统可直接防止未授权的存储器存取。

图4图解说明根据本发明的一些实施例的通过存储器系统4010的存储器存取过程流程4000。存储器系统4010可为根据本发明的一些实施例的存储器系统1010的实例性实施例。可由控制模块4060接收存储器存取请求4110。存储器存取请求4110可由计算机系统的另一组件(例如,执行指令的处理器)等等发出。在操作4120处,控制模块4060可存取一或多个存取规则4030。存取规则4030可存储于非易失性存储器件(例如,第一存储器阵列4020)中。可将存取规则4030的副本加载到易失性存储器件中以供快速存取。在一些实例中,存取规则4030中的一些可存储于易失性存储器中,且一些可存储于非易失性存储器中。因此,确定存取规则4030可涉及从易失性或非易失性存储器中的任一者或两者加载其。

存取规则可以各种方式组织,但在一个实例中,存取规则可呈以存储器地址加索引的数据库格式。因此,在操作4130处,控制模块4060可利用在存储器存取请求4110中提交的存储器地址来返回适当存取规则。所返回存取规则可提及一或多个寄存器4080。在操作4140处,控制模块4060可确定来自寄存器4080的一或多个值以评估存取规则。在操作4150处可返回这些寄存器。寄存器4080可存储于易失性或非易失性存储器中。控制模块4060可通过(举例来说)执行一或多个存储器管理指令或通过存取非易失性存储器而通过存取易失性存储器的堆叠、堆或其它经分配形式来执行操作4120、4130、4140及4150。可由控制模块4060评估存取规则以确定是否允许存储器存取。如果允许存储器存取,那么在操作4160处,可执行存储器存取。在操作4170处,可由控制模块4060接收结果(例如,读取操作的值或写入的结果),在操作4180处可往回传递所述结果。如果存储器存取被拒绝,那么在操作4180处可返回失败消息。

图5图解说明实例性计算机系统5000的框图。图5中的组件是示范性的,且具有较多或较少组件的计算机系统可。在替代实施例中,计算机系统5000可作为独立装置操作,或者可连接(例如,联网)到其它机器或计算机系统。在联网部署中,计算机系统5000可在服务器-客户端网络环境中在服务器、客户端或两者的容量内操作。在一实例中,计算机系统5000可充当对等(P2P)(或其它分布式)网络环境中的对等方。计算机系统5000可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、智能电话、web器具、网络路由器、开关或桥接器、物联网(IoT)装置、汽车装置或者能够执行规定将由所述机器进行的动作的指令(顺序地或以其它方式)的任一机器。此外,虽然仅图解说明单个计算装置,但术语“计算机系统”还可包含个别地或联合地执行一组(或多组)指令以执行本文中所论述的方法(例如,云计算、软件即服务(SaaS)、其它计算机群集配置)中的任何一或多者的计算装置的任何集合。

如本文中所描述,实例可包含逻辑或若干个组件、模块或机构,或者可在逻辑或若干个组件、模块或机构上操作。模块是能够执行所规定操作且可以特定方式配置或布置的有形实体(例如,硬件)。在一实例中,电路可以所规定方式布置(例如,在内部或相对于外部实体(例如,其它电路))为模块。在一实例中,一或多个计算机系统(例如,独立式客户端或服务器计算机系统)或者一或多个硬件处理器的全部或一部分可由固件或软件(例如,指令、应用程序部分或应用程序)配置为操作以执行所规定操作的模块。在一实例中,软件可驻存于机器可读媒体上。在一实例中,软件在由模块的基础硬件执行时致使所述硬件执行所规定操作。

因此,术语“模块”应理解为涵盖有形实体,所述有形实体为经物理构造、具体配置(例如,硬连线)或暂时(例如,临时)配置(例如,编程)而以所规定方式操作或者执行本文中所描述的任何操作的一部分或全部的实体。考虑其中模块经暂时配置的实例,模块中的每一者不必在任一时刻实例化。举例来说,在模块包括使用软件配置的通用硬件处理器的情况下,所述通用硬件处理器可在不同时间配置为相应不同模块。软件可因此将硬件处理器配置为(举例来说)在一个时间实例处构成特定模块且在不同时间实例处构成不同模块。

计算机系统5000可包含硬件处理器5002(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器5004及静态存储器5006,其等中的一些或全部可经由互链路(例如,总线)5008彼此通信。主存储器5004包括易失性存储器,例如,随机存取存储器(RAM)。静态存储器5006包括可存储固件的只读存储器(ROM)、基本输入输出系统(BIOS)、统一可扩展固件接口(UEFI)。计算机系统5000可进一步包含显示单元5010、字母数字输入装置5012(例如,键盘)及用户接口(UI)导航装置5014(例如,鼠标)。在一实例中,显示单元5010、输入装置5012及UI导航装置5014可为触摸屏显示器。计算机系统5000可另外包含存储系统(例如,存储器系统5016(其可为存储器系统1010的实例))、信号产生装置5018(例如,扬声器)、网络接口装置5020及一或多个传感器5021(例如,全球定位系统(GPS)传感器、罗盘、加速度计或其它传感器)。计算机系统5000可包含输出控制器5028(例如,串行(例如,通用串行总线(USB)、并行或者其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接)以与一或多个***装置(例如,打印机、读卡器等)通信或控制所述一或多个***装置。

存储器系统5016可包含机器可读媒体5022,所述机器可读媒体上面存储有体现本文中所描述的技术或功能中的任何一或多者或者由本文中所描述的技术或功能中的任何一或多者利用的一或多个组的数据结构或指令5024(例如,软件)。指令5024还可在其由计算机系统5000执行期间完全或至少部分地驻存于主存储器5004内、静态存储器5006内或硬件处理器5002内。在一实例中,硬件处理器5002、主存储器5004、静态存储器5006或存储器系统5016中的一者或任何组合可构成机器可读媒体。

虽然机器可读媒体5022图解说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令5024的单个媒体或多个媒体(例如,集中式或分布式数据库,及/或相关联高速缓冲存储器及服务器)。

术语“机器可读媒体”包含能够存储、编码或运载供计算机系统5000执行的指令且致使计算机系统5000执行本发明的技术中的任何一或多者,或者能够存储、编码或运载由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器以及光学及磁性媒体。机器可读媒体的特定实例包含:非易失性存储器,例如,半导体存储器系统(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))及快闪存储器系统;磁盘,例如,内部硬盘及可装卸式磁盘;磁光盘;随机存取存储器(RAM);固态驱动器(SSD);以及CD-ROM及DVD-ROM磁盘。在一些实例中,机器可读媒体可为非暂时性机器可读媒体。在一些实例中,机器可读媒体可为并非暂时性传播信号的机器可读媒体。

指令5024可进一步通过通信网络5026使用发射媒体经由网络接口装置5020发射或接收。计算机系统5000可利用若干个传送协议(例如,帧中继、因特网协议(IP)、发射控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)中的任一者与一或多个其它机器通信。实例性通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络及无线数据网络(例如,称为的电气与电子工程师协会(IEEE)802.11标准系列、称为的IEEE 802.16标准系列)、IEEE 802.15.4标准系列、长期演进(LTE)标准系列、通用移动电信系统(UMTS)标准系列、对等(P2P)网络以及其它。在一实例中,网络接口装置5020可包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或者一或多个天线以连接到通信网络5026。在一实例中,网络接口装置5020可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者无线地通信。在一些实例中,网络接口装置5020可使用多用户MIMO技术无线地通信。

图6展示作为一或多个设备6030到6050的一部分的具有存储器系统6020(例如,存储器系统1010、4010、5016)的实例性计算机系统6010(例如,计算机系统5000)。设备包含可包含计算机系统(例如,计算机系统6010)的任何装置。如先前所述,计算机系统6010(及计算机系统5000)可为能够执行指令(顺序地或以其它方式)的任何装置。实例性设备包含汽车6030(例如,作为信息娱乐系统、控制系统等等的一部分)、无人机6050(例如,作为控制系统的一部分)、家具或器具6040(例如,作为传感器系统、娱乐或信息娱乐系统的一部分)等等。在其它实例中,尽管未展示,但设备可包含航空装置、船舶装置、物联网(IOT)及其它装置。

其它注释及实例

实例1是一种存储器系统,其包括:非易失性存储器阵列,所述非易失性存储器阵列包含多个可寻址存储器存储位置且存储存取规则,所述存取规则规定控制寄存器,所述控制寄存器可仅通过扩展所述控制寄存器的值而从初始值修改;第二存储器阵列,其存储所述控制寄存器;及控制器,所述控制器耦合到所述非易失性存储器阵列及所述第二存储器阵列;所述控制器执行包括以下各项的操作:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的特定一者的请求;基于所述存取规则,确定所述特定存储器存储位置受所述存取规则保护;及响应于所述确定所述特定存储器存储位置受所述存取规则保护,确定所述特定存储器存储位置在给定所述控制寄存器的值的情况下是可存取的;及响应于确定所述特定存储器存储位置在给定所述控制寄存器的所述值的情况下是可存取的,处理要存取所述特定存储器存储位置的所述请求。

在实例2中,实例1的标的物任选地包含其中所述控制器执行包括以下各项的进一步操作:接收要扩展所述控制寄存器的命令,所述命令包含扩展值;通过将算法应用于所述控制寄存器的所述值及所述扩展值以创建新值来扩展所述控制寄存器;及将所述控制寄存器设定到所述新值。

在实例3中,实例2的标的物任选地包含其中所述算法是散列算法。

在实例4中,实例2到3中的任何一或多者的标的物任选地包含其中所述控制器执行包括以下各项的进一步操作:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的所述特定一者的第二请求;基于所述存取规则,确定所述特定存储器存储位置受所述存取规则保护;及响应于所述确定所述特定存储器存储位置受所述存取规则保护,确定所述特定存储器存储位置在给定所述控制寄存器的所述新值的情况下是不可存取的;及响应于确定所述特定存储器存储位置在给定所述寄存器的所述新值的情况下是不可存取的,拒绝要存取所述特定存储器存储位置的所述请求。

在实例5中,实例1到4中的任何一或多者的标的物任选地包含其中所述控制器执行包括以下各项的进一步操作:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的另一者的第二请求;基于第二存取规则,确定所述另一可寻址存储器存储位置受所述第二存取规则保护,所述第二存取规则规定第二控制寄存器,所述第二控制寄存器可仅通过扩展所述第二控制寄存器的值而从初始值修改;及响应于所述确定所述另一存储器存储位置受所述第二存取规则保护,确定所述另一存储器存储位置在给定所述第二寄存器的所述值的情况下是不可存取的;及响应于确定所述另一存储器存储位置在给定所述第二寄存器的所述值的情况下是不可存取的,拒绝所述第二请求。

在实例6中,实例1到5中的任何一或多者的标的物任选地包含其中所述控制器通过以下操作确定所述特定存储器存储位置是可存取的:使用所述控制寄存器的值来评估所述存取规则以产生布林值,所述布林值指示所述存储器存储位置是可存取的。

在实例7中,实例6的标的物任选地包含其中所述控制器确定如果所述控制寄存器的所述值等于比较值,那么所述特定存储器存储位置是可存取的。

在实例8中,实例1到7中的任何一或多者的标的物任选地包含其中所述控制器执行进一步操作以:在系统通电后即刻将所述控制寄存器设定到所述初始值。

实例9是一种存储器存取方法,其包括:接收要存取非易失性存储器阵列的特定可寻址存储器存储位置的请求,所述非易失性存储器阵列存储存取规则,所述存取规则规定控制寄存器,所述控制寄存器可仅通过扩展所述控制寄存器的值而从初始值修改,所述控制寄存器在第二存储器阵列中;基于所述存取规则,确定所述特定存储器存储位置受所述存取规则保护;及响应于所述确定所述特定存储器存储位置受所述存取规则保护,确定所述特定存储器存储位置在给定所述控制寄存器的值的情况下是可存取的;及响应于确定所述特定存储器存储位置在给定所述控制寄存器的所述值的情况下是可存取的,处理要存取所述特定存储器存储位置的所述请求。

在实例10中,实例9的标的物任选地包含:接收要扩展所述控制寄存器的命令,所述命令包含扩展值;通过将算法应用于所述控制寄存器的所述值及所述扩展值以创建新值来扩展所述控制寄存器;及将所述控制寄存器设定到所述新值。

在实例11中,实例10的标的物任选地包含其中所述算法是散列算法。

在实例12中,实例10到11中的任何一或多者的标的物任选地包含:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的所述特定一者的第二请求;基于所述存取规则,确定所述特定存储器存储位置受所述存取规则保护;及响应于确定所述特定存储器存储位置受所述存取规则保护,确定所述特定存储器存储位置在给定所述控制寄存器的所述新值的情况下是不可存取的;及响应于确定所述特定存储器存储位置在给定所述寄存器的所述新值的情况下是不可存取的,拒绝要存取所述特定存储器存储位置的所述请求。

在实例13中,实例9到12中的任何一或多者的标的物任选地包含:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的另一者的第二请求;基于第二存取规则,确定所述另一可寻址存储器存储位置受所述第二存取规则保护,所述第二存取规则规定第二控制寄存器,所述第二控制寄存器可仅通过扩展所述第二控制寄存器的值而从初始值修改;及响应于确定所述另一存储器存储位置受所述第二存取规则保护,确定所述另一存储器存储位置在给定所述第二寄存器的所述值的情况下是不可存取的;及响应于确定所述另一存储器存储位置在给定所述第二寄存器的所述值的情况下是不可存取的,拒绝所述第二请求。

在实例14中,实例9到13中的任何一或多者的标的物任选地包含其中确定所述特定存储器存储位置是可存取的包括:使用所述控制寄存器的值来评估所述存取规则以产生布林值,所述布林值指示所述存储器存储位置是可存取的。

在实例15中,实例14的标的物任选地包含其中确定所述特定存储器存储位置是可存取的包括:评估所述控制寄存器的所述值是否等于比较值。

在实例16中,实例9到15中的任何一或多者的标的物任选地包含在系统通电后即刻将所述控制寄存器设定到所述初始值。

实例17是一种机器可读媒体,其包括指令,所述指令在由机器执行时致使所述机器执行包括以下各项的操作:接收要存取非易失性存储器阵列的特定可寻址存储器存储位置的请求,所述非易失性存储器阵列存储存取规则,所述存取规则规定控制寄存器,所述控制寄存器可仅通过扩展所述控制寄存器的值而从初始值修改,所述控制寄存器在第二存储器阵列中;基于所述存取规则,确定所述特定存储器存储位置受所述存取规则保护;及响应于所述确定所述特定存储器存储位置受所述存取规则保护,确定所述特定存储器存储位置在给定所述控制寄存器的值的情况下是可存取的;及响应于确定所述特定存储器存储位置在给定所述控制寄存器的所述值的情况下是可存取的,处理要存取所述特定存储器存储位置的所述请求。

在实例18中,实例17的标的物任选地包含其中所述操作包括:接收要扩展所述控制寄存器的命令,所述命令包含扩展值;通过将算法应用于所述控制寄存器的所述值及所述扩展值以创建新值来扩展所述控制寄存器;及将所述控制寄存器设定到所述新值。

在实例19中,实例18的标的物任选地包含其中所述算法是散列算法。

在实例20中,实例18到19中的任何一或多者的标的物任选地包含其中所述操作包括:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的所述特定一者的第二请求;基于所述存取规则,确定所述特定存储器存储位置受所述存取规则保护;及响应于确定所述特定存储器存储位置受所述存取规则保护,确定所述特定存储器存储位置在给定所述控制寄存器的所述新值的情况下是不可存取的;及响应于确定所述特定存储器存储位置在给定所述寄存器的所述新值的情况下是不可存取的,拒绝要存取所述特定存储器存储位置的所述请求。

在实例21中,实例17到20中的任何一或多者的标的物任选地包含其中所述操作包括:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的另一者的第二请求;基于第二存取规则,确定所述另一可寻址存储器存储位置受所述第二存取规则保护,所述第二存取规则规定第二控制寄存器,所述第二控制寄存器可仅通过扩展所述第二控制寄存器的值而从初始值修改;及响应于确定所述另一存储器存储位置受所述第二存取规则保护,确定所述另一存储器存储位置在给定所述第二寄存器的所述值的情况下是不可存取的;及响应于确定所述另一存储器存储位置在给定所述第二寄存器的所述值的情况下是不可存取的,拒绝所述第二请求。

在实例22中,实例17到21中的任何一或多者的标的物任选地包含其中确定所述特定存储器存储位置是可存取的所述操作包括使用所述控制寄存器的值来评估所述存取规则以产生布林值的操作,所述布林值指示所述存储器存储位置是可存取的。

在实例23中,实例22的标的物任选地包含其中确定所述特定存储器存储位置是可存取的所述操作包括评估所述控制寄存器的所述值是否等于比较值的操作。

在实例24中,实例17到23中的任何一或多者的标的物任选地包含其中所述操作包括在系统通电后即刻将所述控制寄存器设定到所述初始值。

实例25是一种存储器控制器,所述存储器控制器其包括:第一存储器位置,其包括第一值;且所述存储器控制器经配置以:经由计算机系统总线接收要扩展所述第一存储器位置中的所述第一值的请求,所述请求包含计算机系统测量值;将所述第一存储器位置设定到新值,所述新值是基于所述第一值与所述新值的编密散列而计算的。

在实例26中,实例25的标的物任选地包含其中所述编密散列是散列算法。

在实例27中,实例25到26中的任何一或多者的标的物任选地包含其中所述控制器进一步经配置以:在所述存储器控制器通电后即刻将所述第一存储器位置的所述值设定到初始值。

在实例28中,实例25到27中的任何一或多者的标的物任选地包含其中所述控制器进一步经配置以:在将所述第一存储器位置设定到所述新值之前,使用编密密钥来鉴定所述请求。

在实例29中,实例25到28中的任何一或多者的标的物任选地包含其中所述控制器进一步经配置以:经由所述计算机系统总线从在计算机系统的处理器上执行的应用程序接收对由所述存储器控制器管理的第二非易失性存储器位置的存取请求;及确定对于所述第二非易失性存储器位置,第二存储器位置的值等于第二值以允许所述应用程序请求的类型的存取,且作为响应,处理所述请求。

在实例30中,实例25到29中的任何一或多者的标的物任选地包含其中所述第一存储器位置是平台配置寄存器。

实例31是一种存储器存取控制方法,其包括:经由计算机系统总线接收要扩展所述第一存储器位置中的第一值的请求,所述请求包含计算机系统测量值;将所述第一存储器位置设定到新值,所述新值是基于所述第一值与所述新值的编密散列而计算的。

在实例32中,实例31的标的物任选地包含其中所述编密散列是散列算法。

在实例33中,实例31到32中的任何一或多者的标的物任选地包含在存储器控制器通电后即刻将所述第一存储器位置的所述值设定到初始值。

在实例34中,实例31到33中的任何一或多者的标的物任选地包含在将所述第一存储器位置设定到所述新值之前,使用编密密钥来鉴定所述请求。

在实例35中,实例31到34中的任何一或多者的标的物任选地包含:经由所述计算机系统总线从在计算机系统的处理器上执行的应用程序接收对由所述存储器控制器管理的第二非易失性存储器位置的存取请求;及确定对于所述第二非易失性存储器位置,第二存储器位置的值等于第二值以允许所述应用程序请求的类型的存取,且作为响应,处理所述请求。

在实例36中,实例31到35中的任何一或多者的标的物任选地包含其中所述第一存储器位置是平台配置寄存器。

实例37是一种机器可读媒体,其包括指令,所述指令在由机器执行时致使所述机器执行包括以下各项的操作:经由计算机系统总线接收要扩展第一存储器位置中的第一值的请求,所述请求包含计算机系统测量值;将所述第一存储器位置设定到新值,所述新值是基于所述第一值与所述新值的编密散列而计算的。

在实例38中,实例37的标的物任选地包含其中所述编密散列是散列算法。

在实例39中,实例37到38中的任何一或多者的标的物任选地包含其中所述操作包括:在存储器控制器通电后即刻将所述第一存储器位置的所述值设定到初始值。

在实例40中,实例37到39中的任何一或多者的标的物任选地包含其中所述操作包括:在将所述第一存储器位置设定到所述新值之前,使用编密密钥来鉴定所述请求。

在实例41中,实例37到40中的任何一或多者的标的物任选地包含其中所述操作包括:经由所述计算机系统总线从在计算机系统的处理器上执行的应用程序接收对由所述存储器控制器管理的第二非易失性存储器位置的存取请求;及确定对于所述第二非易失性存储器位置,第二存储器位置的值等于第二值以允许所述应用程序请求的类型的存取,且作为响应,处理所述请求。

在实例42中,实例37到41中的任何一或多者的标的物任选地包含其中所述第一存储器位置是平台配置寄存器。

实例43是一种物联网(IoT)装置,其包括:处理器;存储器系统,其包括:非易失性存储器阵列,所述非易失性存储器阵列包含多个可寻址存储器存储位置且存储存取规则,所述存取规则规定控制寄存器,所述控制寄存器可仅通过扩展所述控制寄存器的值而从初始值修改;第二存储器阵列,其存储所述控制寄存器;及控制器,所述控制器耦合到所述非易失性存储器阵列及所述第二存储器阵列;所述控制器执行包括以下各项的操作:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的特定一者的请求;所述请求来自在所述处理器上执行的计算机程序;基于所述存取规则,确定所述特定存储器存储位置受所述存取规则保护;及响应于所述确定所述特定存储器存储位置受所述存取规则保护,确定所述特定存储器存储位置在给定所述控制寄存器的值的情况下是可存取的;及响应于确定所述特定存储器存储位置在给定所述控制寄存器的所述值的情况下是可存取的,处理要存取所述特定存储器存储位置的所述请求。

在实例44中,实例43的标的物任选地包含其中所述控制器执行包括以下各项的进一步操作:接收要扩展所述控制寄存器的命令,所述命令包含扩展值;通过将算法应用于所述控制寄存器的所述值及所述扩展值以创建新值来扩展所述控制寄存器;及将所述控制寄存器设定到所述新值

在实例45中,实例44的标的物任选地包含其中所述算法是散列算法。

在实例46中,实例44到45中的任何一或多者的标的物任选地包含其中所述控制器执行包括以下各项的进一步操作:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的所述特定一者的第二请求;基于所述存取规则,确定所述特定存储器存储位置受所述存取规则保护;及响应于所述确定所述特定存储器存储位置受所述存取规则保护,确定所述特定存储器存储位置在给定所述控制寄存器的所述新值的情况下是不可存取的;及响应于确定所述特定存储器存储位置在给定所述寄存器的所述新值的情况下是不可存取的,拒绝要存取所述特定存储器存储位置的所述请求。

在实例47中,实例43到46中的任何一或多者的标的物任选地包含其中所述控制器执行包括以下各项的进一步操作:接收要存取所述非易失性存储器阵列的所述多个可寻址存储器存储位置中的另一者的第二请求;基于第二存取规则,确定所述另一可寻址存储器存储位置受所述第二存取规则保护,所述第二存取规则规定第二控制寄存器,所述第二控制寄存器可仅通过扩展所述第二控制寄存器的值而从初始值修改;及响应于所述确定所述另一存储器存储位置受所述第二存取规则保护,确定所述另一存储器存储位置在给定所述第二寄存器的所述值的情况下是不可存取的;及响应于确定所述另一存储器存储位置在给定所述第二寄存器的所述值的情况下是不可存取的,拒绝所述第二请求。

在实例中48,实例43到47中的任何一或多者的标的物任选地包含其中所述控制器通过以下操作确定所述特定存储器存储位置是可存取的:使用所述控制寄存器的值来评估所述存取规则以产生布林值,所述布林值指示所述存储器存储位置是可存取的。

在实例中49,实例48的标的物任选地包含其中所述控制器确定如果所述控制寄存器的所述值等于比较值,那么所述特定存储器存储位置是可存取的。

在实例中50,实例43到49中的任何一或多者的标的物任选地包含其中所述控制器执行进一步操作以:在系统通电后即刻将所述控制寄存器设定到所述初始值。

在实例中51,先前实例中的任何一或多者的标的物可任选地在汽车装置(例如,信息娱乐系统)中实施。

在实例中52,先前实例中的任何一或多者的标的物可任选地在器具中实施。

24页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:高频域的数据输出

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类