用于保护存储器模块的方法和装置 背景技术 [0001] 本发明涉及计算机或信息处理系统、处理器和存储器子系统,并且更具体地涉及保护存储器子系统免受未授权访问。 [0002] 随着信息技术的最新进步和广泛使用互联网来存储和处理电子信息和数据,对计算系统获取、处理、存储和传播信息提出了越来越多的需求。正在开发计算系统以增加计算机能够执行日益复杂的应用以用于商业、个人使用和娱乐的速度。总体计算机系统性能受计算机结构的每个关键要素的影响,包括处理器、任何存储器高速缓存、输入/输出(I/O)子系统、存储器控制功能、存储器设备和子系统以及任何相关联的存储器接口或互连元件的性能、效率和结构。 [0003] 执行日益复杂的应用的处理器的不断增加的速度对计算机中的所有其他子系统(包括存储器子系统)提出了更严格的性能要求,其中,在应用或程序的操作期间,数据被多次存储、访问和更新。大多数计算机的存储器子系统通常由存储器控制器来操作和控制。在许多存储器子系统中,存储器控制器可控制多个存储器设备。存储器设备可布置成排和/或通道。 [0004] 诸如服务器、台式和膝上型计算机的计算机系统通常设计有被配置为存储器模块的存储器子系统,包括行业标准(IS)DIMM(ISDIMM)。计算机的存储器子系统通常包括一个或多个存储器模块,通常是一个或多个DIMM,每个DIMM包括多个存储器设备,例如,动态随机存取存储器(DRAM)设备。DIMM可以具有一列或多列和一个通道或多个通道的存储器设备。存储器模块上的一个或多个存储器设备包含信息和数据,并且可以包含受到黑客行为或非安全访问的机密、敏感和/或个人信息。这些不安全的、未经授权的访问可窃取有价值的和/或敏感的信息。提供安全措施、技术和/或系统以保护这样的存储器子系统和模块免受未授权访问将是有利的。 发明内容 [0005] 给出本公开的概述以帮助理解信息处理系统、处理器和存储器系统、它们的架构结构、以及保护对信息的访问的方法,并且不旨在限制本公开或本发明。本公开涉及本领域普通技术人员。应理解,本公开的各个方面和特征可有利地在一些情况下被单独地使用,或在其他情况下与本公开的其他方面和特征组合使用。因而,可以对信息处理系统、处理器、存储器系统、它们的架构结构和操作方法进行变化和修改以实现不同的效果。 [0006] 在一个或多个实施例中,公开了一种用于存储数据的方法、技术和/或存储器系统,包括:提供存储器模块,所述存储器模块具有用于存储数据的一个或多个存储器设备和用于控制被提供给所述一个或多个存储器设备的电压电平的电压调节器,其中,所述电压调节器具有允许与所述一个或多个存储器设备进行写入操作和读取操作的第一状态、以及其中所述电压调节器至少阻止与所述一个或多个存储器设备进行读取操作的第二状态;将加密密钥值存储在所述电压调节器上的只读存储器中;将所述加密密钥值从所述电压调节器上的所述只读存储器复制到电压调节器寄存器;将电压调节器加密定时器设置为时段; 以及响应于所述电压调节器加密定时器的所述时段期满,将所述电压调节器转变到所述第二状态。在一个方面,所述方法和/或系统还包括:由所述电压调节器从远离所述存储器模块的系统接收主机加密密钥;将所述主机加密密钥与所述电压调节器寄存器中的所述加密密钥值进行比较;以及响应于所述主机加密密钥与所述加密密钥值匹配,重置所述电压调节器加密定时器,以使得所述电压调节器保持在所述第一状态。所述方法和/或系统还包括:响应于所述主机加密密钥与所述加密密钥值不匹配,不重置所述电压调节器加密定时器。在一个实施例中,响应于转变到所述第二状态,所述电压调节器将被提供给所述一个或多个存储器设备的所述电压电平改变为低电压电平状态,从而使得所述一个或多个存储器设备上的数据不可访问。在一个方面中,电压调节器控制器将由所述电压调节器提供给所述一个或多个存储器设备的所述电压电平改变为所述低电压电平状态。根据一个实施例,所述一个或多个存储器设备中的一个或多个存储器设备是易失性存储器,并且响应于转变到所述第二状态,所述一个或多个易失性存储器设备中的数据被保存到非易失性存储器。 [0007] 在一个方面中,所述方法和/或系统还包括:当所述电压调节器在所述第二状态中工作时,确定所述电压调节器是否从远离所述存储器模块的系统接收到主机加密密钥;将所述主机加密密钥与所述电压调节器寄存器中的所述加密密钥值进行比较;以及响应于所述主机加密密钥与所述加密密钥值匹配,将所述电压调节器转变到所述第一状态。响应于将所述电压调节器转变到所述第一状态,将由所述电压调节器提供的所述电压电平改变为允许与所述一个或多个存储器设备进行读取操作和写入操作的第二电压电平状态。根据一个实施例,响应于将所述电压调节器转变到所述第一状态,所述电压调节器重置所述电压调节器加密定时器,并且在一个方面,响应于将所述电压调节器转变到所述第一状态,重置恢复位以将所述电压调节器返回到所述第二电压电平状态。在系统设置时,将所述加密密钥加载到所述电压调节器只读存储器中并且将匹配的加密密钥值存储在远离所述存储器模块的位置中;以及对用于所述电压加密定时器的所述时段进行编程。 [0008] 公开了一种用于存储数据的存储器系统,所述存储器系统包括:存储器模块,其具有被配置为存储数据的至少一个存储器设备,所述存储器模块具有电压调节器,所述电压调节器具有用于向所述至少一个存储器设备提供电压电平以控制对所述至少一个存储器设备的读取操作和写入操作的电路和逻辑,其中,所述电压调节器具有允许与所述至少一个存储器设备进行写入操作和读取操作的第一状态、以及其中所述电压调节器至少阻止与所述至少一个存储器设备进行读取操作的第二状态。在一个方面,所述电压调节器包括:只读存储器,其用于存储加密密钥;电压调节器寄存器,其用于从所述只读存储器接收并存储所述加密密钥;加密定时器,其用于设置时段;电压调节器安全控制器,其用于控制被提供给所述至少一个存储器设备的电压电平,并且具有用于将所述电压调节器接收的加密密钥值与所述电压调节器寄存器中的所述加密密钥进行比较的逻辑;其中,所述电压调节器被配置为:将所述加密密钥值存储在所述电压调节器上的只读存储器中;将所述加密密钥值从所述电压调节器上的所述只读存储器复制到所述电压调节器寄存器;将所述电压调节器加密定时器设置为所述时段;以及响应于所述电压调节器加密定时器的所述时段期满,将所述电压调节器转变到所述第二状态。在一个方面,所述电压调节器还被配置为:从远离所述存储器模块的系统接收主机加密密钥;将所述主机加密密钥与所述电压调节器寄存器中的所述加密密钥值进行比较;以及响应于所述主机加密密钥与所述加密密钥值匹配,重置所述电压调节器加密定时器,以使得所述电压调节器保持在所述第一状态。 [0009] 本发明的前述和其他目的、特征以及优点将从如在附图中所展示的本发明的示意性实施例的以下更具体的说明中变得清楚,其中相同的参考标号总体上代表本发明的示意性实施例的相同部分。 附图说明 [0010] 当结合所提供的附图阅读时,将更好地理解信息处理系统、处理器和存储器子系统、它们的架构结构及其操作方法的各个方面、特征和实施例。出于说明信息处理系统、处理器、存储器子系统、它们的架构结构和操作方法的方面、特征和/或各个实施例的目的,在附图中提供了实施例,但权利要求不应限于所示的精确布置、结构、组件、子组件、功能单元、电路、特征、方面、实施例、设备、机构、方法、过程或技术,并且所示的布置、结构、组件、子组件、功能单元、电路、特征、方面、实施例、设备、机构、方法、过程和技术可以单独地或与其他布置、结构、组件、子组件、功能单元、电路、特征、方面、实施例、设备、机构、方法、过程和技术组合地使用。 [0011] 图1示出了通用计算或数据处理系统; [0012] 图2示出了根据实施例的包括存储器子系统的计算或处理系统; [0013] 图3示出了根据实施例的存储器子系统; [0014] 图4示出了根据实施例的存储器子系统; [0015] 图5示出了根据实施例的存储器子系统; [0016] 图6示出了根据实施例的存储器子系统; [0017] 图7示出了根据实施例的存储器子系统; [0018] 图8示出了根据实施例的信息处理系统; [0019] 图9示出了根据实施例的信息处理系统; [0020] 图10示出了根据实施例的存储器模块电压调节器,也称为电源管理接口控制器(PMIC); [0021] 图11是根据保护存储器模块的内容免受未授权访问的实施例的方法的流程图; [0022] 图12是根据配置存储器模块以阻止对其内容的未授权访问的实施例的方法的流程图; [0023] 图13是根据激活存储器模块以阻止对其内容的不安全或未授权访问以及存储器模块的操作的实施例的方法的流程图; [0024] 图14是根据恢复已经移动到调节模式的存储器模块以阻止对其内容的未授权访问的实施例的方法的流程图; [0025] 图15示出了根据本公开的一个或多个实施例的针对PMIC有限状态机(FSM)的高级状态转变的示图。 具体实施方式 [0026] 以下描述是为了说明本发明的一般原理而进行的,并且不意味着限制在此要求保护的发明概念。在以下详细描述中,阐述了许多细节以便提供对信息处理系统、处理器、存储器系统、其架构结构和操作方法的理解,然而,所属领域的技术人员将理解,信息处理系统、处理器、存储器系统、其架构结构和操作方法的不同和许多实施例可在没有这些特定细节的情况下实现,并且权利要求和本发明不应限于本文中具体描述和显示的布置、结构、实施例、组件、子组件、特征、功能单元、电路、过程、方法、方面、特征或细节。此外,本文描述的特定特征、方面和实施例可以在各种可能的组合和置换的每一个中与其他描述的特征、方面和/或实施例一起使用。 [0027] 除非本文中另外特别限定,否则所有术语将被给予它们的最广泛的可能解释,包括从说明书中暗示的含义以及本领域技术人员所理解的含义和/或如在词典、论文等中限定的含义。还必须注意的是,如在说明书和所附权利要求中使用的,单数形式“一个”、“一种”和“该”包括复数指示物,除非另外说明。 [0028] 适合用于存储和/或执行程序代码的计算或信息处理(数据处理)系统100可以采取许多形式,并且在一个实施例中可以包括至少一个处理器102,处理器102可以是控制器或者是控制器的一部分、通过系统总线106直接或间接地耦接到存储器设备或元件,如图1中所示。图1中的计算或信息处理系统100被示为具有处理器102、随机存取存储器(RAM) 103、非易失性存储器104、设备特定电路101和I/O接口105。替代地,RAM 103和/或非易失性存储器104可以被包含在处理器102中,如同设备特定电路101和I/O接口105那样。处理器 102可包括例如现成微处理器、定制处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、分立逻辑等。RAM 103通常用于保存可变数据、堆栈数据、可执行指令等,并可包含机密或敏感数据。RAM 103可以包括动态随机存取存储器或DRAM。在一个实施例中,RAM 103可以包括双倍数据速率(DDR)同步DRAM或SDRAM。RAM 103可以包括布置在模块上的存储器设备,例如双列直插存储器模块,也称为DIMM。 [0029] 根据不同方案,非易失性存储器104可以包括任何类型的非易失性存储器,诸如但不限于电可擦除可编程只读存储器(EEPROM)、闪存可编程只读存储器(PROM)、电池后备RAM、硬盘驱动器等。非易失性存储器104典型地用于保持可执行固件和包含编程指令的任何非易失性数据,编程指令可以被执行以使得处理器102执行特定功能。 [0030] 在一些实施例中,I/O接口105可以包括允许处理器102与控制器外部的设备通信的通信接口。通信接口的示例可以包括但不限于:串行接口,诸如RS‑232、USB(通用串行总线)、小型计算机系统接口(SCSI)、RS‑422;或无线通信接口,诸如Wi‑Fi、蓝牙、近场通信(NFC)或其他无线接口。计算系统100可以经由通信接口105采用诸如自动化/驱动器接口(ADI)的任何通信协议与外部设备通信。 [0031] 图2描述了可以是较大计算机或信息处理系统结构或网络的一部分的示例性处理系统200。处理系统200包括控制处理器系统或处理器202,其是包括可以被配置为与存储器控制单元(MCU)210接口的至少一个处理器单元(CPU)或微处理器206的处理子系统。处理器或CPU 206可以是处理来自系统控制器(未示出)的读取、写入和配置请求的模块。处理器 206可以是多核处理器。MCU 210可包括存储器控制器同步(MCS)208,也称为存储器控制器,其控制与存储器子系统220中的一个或多个存储设备250的通信。MCU 210和MCS 208可包括一个或多个处理电路,或者处理可由处理器206执行或与处理器206结合执行。控制处理器系统202通过通信总线215与存储器子系统220通信。控制处理器系统202、处理器或CPU 206、存储器控制单元(MCU)210和MCS 208在本文中可单独地和共同地被称为主机。如本文所使用的主机广泛地用于指向存储器系统或存储器子系统发送和接收命令和/或控制信号的处理器、控制器或设备。主机通常还从存储器系统或子系统发送和接收数据(信号)。 [0032] 公开了管理和保护数据的系统、架构和/或方法,并且在一个方面,公开了阻止对存储器模块上的数据的未授权访问的系统、架构和/或方法。在实施例中,公开了使用发送到存储器子系统和由存储器子系统接收的加密密钥的系统、架构结构和/或方法,以及在一个方面,由主机将加密密钥发送到存储器子系统。在一个或多个实施例中,如果存储器子系统没有接收到加密密钥,则它关闭电源并且不允许访问存储器子系统。 [0033] 图3‑7示出可在其上实践本公开的实施例的存储器子系统300的示例。图3‑7将存储系统300示出为存储器模块325,例如,双列直插存储器模块或DIMM 320,但应当理解,存储器子系统300可以包含更多或更少的存储器模块325,例如,DIMM 320,并且通常具有多个DIMM 320。每个存储器模块325可以包含一个或多个存储器设备330,并且通常包含多个存储器设备330。在一个或多个实施例中,(一个或多个)存储器模块325包含用于管理和存储数据的电路和逻辑,包括执行对一个或多个存储器设备的读取和写入操作。图3示出了RDIMM配置,图4示出了NVDIMM类型N,图5示出了NVDIMM类型P,图6示出了差分DIMM,以及图7示出了SODIMM。图3‑4和7中的DIMM 320包含一个或多个易失性存储器设备350,例如DRAM 350。DRAM 350优选为双倍数据速率(DDR)同步DRAM 350。DIMM 320可以包含非易失性存储器设备355,包括闪存或存储级内存(SCM)355。图3‑7示出了具有与DDR5一致的架构的DIMMS 320。该存储器系统架构可以被格式化和结构化以支持DDR4、DDR5,尽管披露和教导的方法、系统、和架构可以适用于其他配置,包括未来标准。 [0034] 存储器设备330可为集成电路或芯片,且形成保持信息位的基本存储单元。存储器设备330中的存储单元(例如,DRAM 350)通常布置成排,其中每个排是行和列的阵列。存储器设备330通常具有4、8或16的位宽,其由标记x4、x8或x16指示。通常,存储器设备330被布置成排(rank)或通道,使得循环在该循环期间读取或写入多个存储器设备。排或通道通常是一组存储器设备330,存储器设备330用不同的请求数据片段同时响应相同的命令和相同的地址。 [0035] 存储器或数据存储系统300可被配置为存储数据和向一或多个主机(例如,处理器)提供存储服务,主机可直接或通过网络(例如,通过互联网)连接到存储系统300。存储器子系统300可包括图8‑9中所示的接口,以用于支持与主机305交换的通信和数据。为了便于说明,在图8‑9中示出了一个存储器模块325(例如,DIMM 320)与主机305之间的接口,但是应当理解,主机305通常与多个存储器模块325接口连接和通信。在图8‑9中,引脚插座310容纳存储器模块325,例如,DIMM 320。为了便于说明,仅示出了主机305、引脚插座310和存储器模块325之间的几个连接,即,电力良好信号连接1088、SCL连接、SDA连接和SAA连接。未示出用于在主机305与存储器模块325之间传输数据和控制和命令通信的连接、接口和总线。 图8示出了与DDR5 RDIMM、LRDIMM、NVDIMM类型N、NVDIMM类型P和SODIMM一致的接口和存储器模块325,并且仅示出了存储器模块325上的一些组件,包括SPD集线器360、寄存器时钟驱动器(RCD)365和电压调节器模块(VRM)380,也称为电源管理接口控制器或PMIC 380。图9示出了与DDR5和DDR4DDIMM一致的接口和存储器模块325,并且仅示出了存储器模块325上的一些组件,包括SPD集线器360、电压调节器模块(VRM)或PMIC 380和缓冲器370。 [0036] 通过与信息系统的处理器侧或主机侧相关联的电压调节器向存储器模块325供电。电压调节器优选在存储器模块325外部并且不安装在存储器模块325上。电压调节器可在系统板、母板、服务器背板上或以其他方式与主机相关联。电压调节器可以将一个或多个电压提供给存储器模块325。在一个实施例中,电压调节器优选地向存储器模块325提供十二(12)伏特和3.3伏特。取决于系统的设计和配置,可以使用其他电压并且电压调节器可以向存储器模块325提供其他电压或多个电压。来自电压调节器的电力通过模块引脚插座或连接器310(在图9至图10中示出)被提供给存储器模块325。引脚插座310具有与模块325上的触点焊盘316接触的一组引脚(参见图3‑7)。插座310中的一个或多个引脚可用于向存储器模块325提供电压/电力。 [0037] 电压调节器模块或PMIC 380安装在存储器模块325上,如图3‑9中所示。被提供给存储器模块325的电力(例如,电压)可以被提供给存储器模块325上的PMIC 380。PMIC 380向存储器模块325提供电压调节,存储器模块325包括存储器设备330,例如,DRAM、闪存和/或SCM、RCD 365和12C组件(例如,SEEPROM、温度传感器和媒体控制器)。板载PMIC 380输出一个或多个不同的、经调节的电压电平。PMIC 380包含用于控制和调节被提供给存储器设备330和其他存储器模块组件的电压电平的电路和逻辑。虽然图3‑5和7‑8仅示出一个板载PMIC 380,但是如图6和9所示的附加PMIC 380可以被设置在存储器模块325上以将合适的电压(电力)提供给存储器模块325上的不同组件,包括存储器设备330。 [0038] 在一个或多个实施例中,公开了一种用于阻止对存储器子系统(例如,各自具有一个或多个存储器设备的一个或多个存储器模块)的未授权或不安全访问的系统和/或技术。 在实施例中,如果在一段时间内存储器模块未接收到加密密钥,则存储器模块改变到低功率状态以阻止数据访问。在一个或多个实施例中,该系统和/或技术将利用PMIC的可编程定时器与处理器来创建同步安全存储器模块。当处理器向PMIC上的加密密钥地址发送周期性写入周期时,处理器与存储器模块同步。在一个方面,PMIC将在PMIC每次接收到加密密钥时重建或重置PMIC的加密定时器。只要PMIC在PMIC的加密定时器的时段内接收到适当的加密密钥,存储器就保持可操作。如果PMIC没有接收到加密密钥,则在所分配的时间之后,PMIC将发送信号以阻止对存储器模块上的存储器设备的任何进一步访问。在一个或多个实施例中,PMIC可以将存储器模块断电或者将存储器模块置于低功率状态。在一个方面,PMIC向处理器发信号通知存储器模块由于不安全或未授权访问而被锁定。为了阻止存储器模块进入低功率模式或掉电模式,或者为了使存储器模块退出低功率或掉电模式,PMIC将必须将加密密钥接收至存储器模块上的密钥寄存器。在一个或多个实施例中,从远离存储器模块的单元(例如,从主机/处理器)接收加密密钥,并且在一个方面,处理器/主机将加密密钥写入存储器模块。 [0039] 图10示出了设置在一个或多个存储器模块(包括例如图3‑9中的DIMMS)上的代表性PMIC 380。一个或多个实施例中的PMIC 380包括只读存储器(ROM)电路1010。PMIC的ROM 1010的一部分包括用于存储加密密钥值的可寻址寄存器1012,优选为2字节可寻址寄存器字段或条目1012。可寻址寄存器1012的内容对于用户是不可读取的。在一个实施例中,加密密钥值1015在系统制造测试期间被编程到ROM 1010中的可寻址寄存器1012中,此时存储器模块在运输到客户之前被安置在系统中。当PMIC 380加电时,ROM 1010中的可寻址寄存器 1012的内容(包括加密密钥1015)被移动到PMIC的寄存器空间1020中。在一个或多个实施例中,直到系统配置PMIC定时器并且主机设置PMIC寄存器1020中的加密启用位1022,才启用PMIC寄存器1020中的PMIC的加密密钥值1015。一旦主机设置加密启用位1022,主机必须开始将加密密钥发送到存储器模块(并且更具体地,发送到存储器模块中的PMIC 380)的节奏。在安全逻辑单元或安全控制器1040中执行由主机发送的加密密钥与保持在PMIC寄存器 1020中的加密密钥值1015的比较。每当PMIC寄存器1020接收到加密密钥值1015时,PMIC 380将重建PMIC的加密定时器1050。如果PMIC 380在分配的时间内(其可被预先定义以及包含重新尝试)未接收到加密密钥值1015,则PMIC 380将发送信号以阻止对存储器设备330的任何进一步存取。在一个或多个实施例中,一旦加密密钥被启用(例如,加密启用位被启用),PMIC安全控制器1040就可以通过控制存储器设备330的电压源并且向处理器/主机表明存储器模块325处于非安全状态来阻止对存储器模块325的非安全访问。 [0040] 在一个或多个实施例中,如果PMIC 380在分配的时间之后未接收到加密密钥,则在一个方面,PMIC根据存储器模块的类型,将GSI_N信号1085发送到RCD 365或缓冲器370,以迫使存储器设备进入自刷新并阻止对存储器设备的任何进一步访问。在特定时间量之后,PMIC 380可以将存储器模块掉电或者将存储器模块置于低功率状态。此后,在一方面中,PMIC将电力良好信号1088驱动到低以向处理器指示存储器模块325由于不安全或未授权的访问而锁闭。为了使PMIC 380退出低功率或掉电模式,PMIC 380以及在一个方面中PMIC寄存器1020将需要例如从处理器/主机接收加密密钥值1015。响应于接收到与PMIC寄存器1020中的值相匹配的加密密钥值1015,PMIC 380将通过释放GSI_N信号1085发信号通知RCD 365以使存储器设备330退出自刷新(SRE)模式。 [0041] 对于图4中所示的NVDIMM类型N,在掉电周期期间,DRAM存储器设备350的内容被转移并存储在非易失性闪存355中。在对NVDIMM类型N存储器模块325重新供电时,内容和数据被自动地从非易失性闪存355传输到DRAM存储器设备350,优选地无需处理器干预。在一个实施例中,系统可以被编程为允许非易失性闪存355响应于加密密钥值被PMIC380接收而将数据传送到DRAM存储器设备350,和/或阻止对存储器设备330上电,直到加密密钥值1015被PMIC 380接收为止。对于PMIC380允许媒体控制器将非易失性闪存355的内容传送回DRAM存储器设备350中的情形,PMIC可以通过用被断言为低的电力良好信号1088发信号给处理器/主机来阻止系统访问。对于图5中示出的NVDIMM P型,PMIC 380将向RCD或缓冲器发信号以抑制电力良好信号,直到PMIC寄存器1020接收到匹配加密密钥值1015为止。一旦接收到加密密钥值并且重建PMIC,PMIC380就可以激活存储器模块325以用于正常操作。 [0042] 处理器或主机可在系统中的任何位置存储加密密钥值,在该位置,系统可在加电时访问加密密钥值。在一个或多个实施例中,加密密钥数据可以跨系统存储在块中以及存储在处理器寄存器的不同部分中。在一个方面,加密密钥应当被与系统所有者共享以允许所有者改变加密密钥,例如,周期性地改变加密密钥以用于维护网络安全协议。在一个或多个方面中,加密密钥可以通过对系统重新供电和重新配置存储器模块325而被去激活。 [0043] 图11是根据一个实施例的示例性流程图,说明和描述了根据本公开的实施例的操作信息系统以阻止对存储器模块(例如DIMMS)的未授权或不安全访问的方法。虽然为方便起见而不是为了限制本公开而将方法1100描述为包括一系列和/或多个步骤,但是应当理解,该过程不需要作为一系列步骤进行和/或这些步骤不需要以相对于图11所示出和描述的顺序进行,而是该过程可以被集成和/或一个或多个步骤可以一起同时地执行,或者这些步骤可以按照公开的顺序或者按照替代的顺序执行。 [0044] 图11中示出了保护存储器模块并阻止不安全访问的方法1100的实施例,并且以将存储器模块插入到引脚连接器中并且将PMIC输入电压上电(例如,供应3.3伏特和12伏特)在1110处开始。在1115,确定该模块是否是安全存储器模块。如果存储器模块不是安全模块(1115:否),则过程继续到1130。如果存储器模块是安全模块(1115:是),则过程继续到 1120,其中,在存储器模块中存储加密密钥。在一个实施例中,在1120,加密密钥内容/值被加载到PMIC的只读存储器(ROM)空间1020中,并且主机将加密密钥存储在系统的主机侧(不在存储器模块中)。1110至1120的过程被执行以建立系统和存储器模块,并且通常直到期望或需要改变加密密钥才被再次执行。 [0045] 在1130,配置存储器模块。在图12的过程1200中更详细地示出了在1130处配置存储器模块的过程。在配置存储器模块(其在系统建立之后并且当系统上电时发生)之后,过程继续到1135,其中确定电力是否良好。如果电力良好(1135:是),则系统进入阶段1140,其中,模块被激活。激活模块的阶段1140的过程在图13的过程1300中更详细地解释。模块激活模式是只要PMIC接收到加密密钥则存储器模块可操作的模式,但是如果没有接收到加密密钥则将转变到不可操作模式。如果电力不良(1135:否),则系统在1150处前进到模块恢复阶段。在图14中的过程1400中更详细地解释在1150的模块恢复阶段。在1150处的模块恢复阶段之后,过程1100前进到1160,在此确定恢复是否成功。如果在1160处恢复成功(1160:是),则过程1100继续返回至1135,在1135处确定电力是否良好。如果在1160处恢复不成功(1160:否),则系统关闭。 [0046] 返回至存储器模块配置阶段1130,图12的流程图描述了过程1200,过程1200是配置存储器模块的过程1130的一个实施例。虽然为方便起见而不是为了限制本公开而将方法 1200描述为包括一系列和/或多个步骤,应当理解,该过程不需要作为一系列步骤来执行和/或这些步骤不需要按照关于图12示出和描述的顺序来执行,而是该过程可以被集成和/或一个或多个步骤可以一起同时地执行,或者这些步骤可以按照公开的顺序或者按照替代的顺序执行。应当理解,配置存储器模块的过程1200通常在每次存储器子系统和存储器模块上电时被执行。 [0047] 在1210处,系统确定存储器模块是否是安全存储器模块,并且如果存储器模块不是安全存储器模块(1210:否),则过程继续到1260,其中配置PMIC寄存器。如果存储器模块是安全存储器模块(1210:是),则过程1200/1130继续到1220,其中建立PMIC定时寄存器。在一个或多个实施例中,建立可编程定时器1050以控制主机和存储器模块之间的安全定时循环。配置安全存储器模块的过程1200/1130在1230处通过建立PMIC安全控制寄存器而继续。 在一个或多个实施例中,在1230,PMIC 380中的控制寄存器1020被编程为当加密密钥被启用时启用PMIC的有限状态机(FSM)以在PMIC处于安全操作状态(例如,安全模式位被设置为零的批量控制链路监视器(BCLM)状态)时移动或转变到调节状态。配置安全存储器模块的过程1400/1130在1240处继续,其中建立电力良好输出。在一个或多个实施例中,在1240处,PMIC安全控制器或安全逻辑1040被编程为控制PMIC380的电力良好输出1088和GSI_N输出 1085以向主机表示RCD 365或缓冲器370已将存储器移动到低功率状态,因为加密密钥超时。配置存储模块的过程1200/1130在1250处继续,其中建立RCD低功率状态。在一个或多个实施例中,在1250,RCD 365被编程为对GSI_N输出1085变低和自刷新(SRE)和时钟启用(CKE)变低做出反应。替代地和/或附加地,建立缓冲器370低功率状态。在一个或多个实施例中,在1250,缓冲器370被编程为对GSI_N输出1085变低和自刷新(SRE)和时钟启用(CKE)变低做出反应。在一个或多个实施例中,缓冲器370将经由GSI_N信号1085被置于低功率状态,并且在一个方面,缓冲器370将存储器(例如存储器设备330)置于低功率状态。 [0048] 在建立安全存储器模块的1250之后,或者在针对非安全存储器模块的1210之后,过程1200/1130继续到1260,其中配置PMIC寄存器。在一个或多个实施例中,在1260处,固件建立PMIC的配置寄存器,设置输出电压等。过程1200/1130继续到1270,其中确定是否激活加密密钥。如果在1270处确定激活加密密钥(1270:是),则过程继续到1280,其中固件启用加密密钥并且主机控制器被同步到PMIC的加密定时器1050。在1280之后,或者在确定不激活加密密钥(1270:否)的情况下,过程1200/1130继续到1290,其中,PMIC输出被启用。在一个或多个实施例中,固件发送就绪启用命令以激活PMIC输出电压。在1290之后,该过程退出配置过程1200/1130,并且以图11所示的过程1100中的1135继续。 [0049] 返回至激活存储器模块的过程的1140,图13的流程图描述了作为激活存储器模块的过程1140的实施例的过程1300。虽然为方便起见而不是为了限制本公开而将方法1300描述为包括一系列和/或多个步骤,但是应当理解,该过程不需要作为一系列步骤来执行和/或这些步骤不需要按照关于图13示出和描述的顺序来执行,而是该过程可以被集成和/或一个或多个步骤可以一起同时地执行,或者这些步骤可以按照公开的顺序或者按照替代的顺序执行。应当理解,激活存储器模块的过程1300通常在存储器子系统和存储器模块上电并且存储器系统执行读和写操作之后被执行。 [0050] 过程1300/1140在1305处以将恢复位设置为零开始。在1310,系统检查存储器模块是否启用加密密钥。如果存储器模块未启用加密(1310:否),则过程1300/1140退出并且在过程1100中继续到1135并且检查电力是否良好。如果在1310存储器模块是启用密钥的(1310:是),则过程继续到1315并且确定PMIC是否接收到加密密钥。对此,通常对于安全操作,主机将加密密钥值发送到PMIC,并且PMIC检查由主机发送的加密密钥值以查看其是否匹配存储在PMIC寄存器1020中的加密密钥。由PMIC接收的加密密钥值是否匹配保持在PMIC寄存器1020中的加密密钥优选地由PMIC安全控制器逻辑1040来执行。如果在1315处接收到加密密钥,例如,接收到加密密钥值并匹配(1315:是),则过程继续到1320,其中,PMIC定时器被重置或重建以再次开始。可以理解,当存储器模块被配置和编程时,PMIC定时器在 1200/1130期间被配置。PMIC应接收加密密钥的时段可被编程并被设置成许多时段中的任一个,例如1秒钟、1分钟、1小时等。如果未接收到加密密钥或所接收的加密密钥不匹配PMIC寄存器中的加密密钥值(1315:否),或在1320处重置PMIC定时器之后,过程1300/1140继续到1325,其中确定PMIC定时器是否已经超时,例如,时段是否已经到期。在主机正在将加密密钥值提供给PMIC的安全操作状态期间,存储器模块通过1315、1320操作,且在1325中的否分支操作,其中PMIC加密定时器未超时,且存储器模块可执行读取、写入和刷新操作。 [0051] 如果在1325处确定PMIC加密定时器已经超时(1325:是),例如,没有接收到正确的加密密钥,从而指示潜在未授权访问,则过程1300/1140继续到1330,其中PMIC转变到调节状态。在一个实施例中,PMIC 380从安全操作状态(例如,批量控制链路监视器(BCLM)状态)转变到调节状态。在一个方面,PMIC有限状态机通过将安全位改为1来从BCLM状态移动至调节状态。在一个或多个实施例中,PMIC在根据存储器模块配置(参见图8和9)转变到调节状态时将GSI_N信号1085发送到RCD365和/或缓冲器370。在1335处,系统检查存储模块是否具有SDRAM存储器设备,并且响应于存储模块具有SDRAM存储器设备(1335:是),过程继续到 1340,其中,RCD将DRAM置于自刷新模式(SRE)并且驱动时钟启用(CKE)为低。该过程在1345处继续,其中PMIC等待RCD将存储器置于自刷新(SRE)低功率状态。该过程在1345至1350之后继续,并且如果在存储器模块上没有SDRAM,在1330之后继续到1350,其中到存储器设备的电压被改变。在一个或多个实施例中,PMIC安全控制器 [0052] 1040改变至存储器设备的电压以保持存储器内容并且将电力良好输出1088断言为低。在这种状态下,其中至存储器设备的电力被断言为低,则存储器模块上的存储器设备的内容是不可访问的。在1350之后,过程1300退出模块激活阶段1140并且进入1135,其中确定电力是否良好。如果存储器模块在1330处转变到调节状态,并且存储器电压在1350处改变,例如,因为PMIC 380没有被提供有正确的加密密钥,则电力不是良好的(1135:否),并且该过程继续到1150处的模块恢复阶段。 [0053] 图14的流程图描述了过程1400,其是图11中的存储器模块恢复过程1150的实施例。虽然为方便起见而不是为了限制本公开而将方法1400描述为包括一系列和/或多个步骤,但是应当理解,该过程不需要作为一系列步骤来执行和/或这些步骤不需要按照关于图 14示出和描述的顺序来执行,而是该过程可以被集成和/或一个或多个步骤可以一起同时地执行,或者这些步骤可以按照公开的顺序或者按照替代的顺序执行。应当理解,配置存储器模块的过程1400通常在每次存储器子系统和存储器模块上电时被执行。 [0054] 模块恢复过程1400/1150在1410处开始,其中系统确定存储器模块是否启用加密密钥。如果存储器模块未启用加密密钥(1410:否),则过程退出模块恢复过程1400/1150并且前进到1160,其中确定恢复是否成功。如果存储器模块启用加密密钥(1410:是),过程 1400/1150进行至1420,其中确定电源是否关闭。如果电源关闭(1420:是),则过程退出模块恢复过程1400/1150并且前进到1160,其中确定恢复是否成功。如果到存储器模块的电源未关闭(1420:否),则过程继续到1430,其中确定是否接收到加密密钥。在一个或多个实施例中,确定是否已经接收到加密密钥涉及确定PMIC是否接收到与存储在PMIC寄存器1020中的加密密钥相匹配的加密密钥(例如,加密密钥值)。如果PMIC例如从主机接收的加密密钥值与保持在PMIC寄存器中的加密密钥相匹配,则考虑在1430处接收的密钥。如果没有接收到加密密钥(1430:否),则过程1400/1150继续回到1420,其中确定电源是否关闭。过程1400将停留在该循环中,直到接收到加密密钥或者PMIC(例如,存储器模块)被断电为止。如果接收到加密密钥(1430:是),则过程1400/1150继续到1440,其中,PMIC改变存储器电压。在一个或多个实施例中,PMIC安全控制器1040改变存储器电压以激活电力设置。在一个方面,向RCD 365断言电力良好输出1088为高且断言GSI_N信号1085为高。 [0055] 该过程继续到1450,其中PMIC转变到安全操作状态。在一个或多个实施例中,PMIC有限状态机(FSM)从调节状态移动到安全模式位被设置为零的批量控制链路监视器(BCLM)状态。在一个实施例中,安全模式位被移动到零。该过程继续到1460,其中重置加密定时器 1050。在一个方面,PMIC重新加载加密定时器。该过程继续到1470,其中恢复位被设置为1。 在一个方面中,设置为1的恢复位将存储器模块返回到活动电力(active power)。在1470之后,恢复过程1400/1150完成并且退出过程1400/1150。在恢复位被设置为1并且活动电力被返回至存储器模块的1470之后退出恢复过程1400/1150时,过程继续至图11中的1160。在 1160,确定恢复是否成功,并且如果恢复成功(1160:是),则过程返回到1135,其中确定电力是否良好。由于恢复成功,并且电力被重新激活,在1135处电力应当良好(1135:是),并且存储器模块应当在1140处进入模块激活阶段。 [0056] 所揭示和所说明的方法和技术将与DDR5工业标准(IS)DIMM一致且工作,DDR5 DIMM在印刷电路板(PCB)上具有PMIC。DDR5 PMIC设计有支持安全模式的有限状态机(FSM),该安全模式需要将VIN批量电力(12伏)和VINMGNT(3.3伏)源再循环到DIMM以退出安全模式。当PMIC被置于安全模式位被设置为零的批量控制链路监视器(BCLM)状态时,控制四个轨配置(SWA、B、C、D)的PMIC寄存器是不可写入的。基本上,用户被阻止进行可能需要的任何电压输出调整。为了脱离批量控制链路监视器(BCLM)状态,用户通常必须对DIMM进行电力循环。 [0057] 在一个或多个实施例中,当PMIC的加密寄存器被启用并且PMIC被置于安全模式位被设置为零的批量控制链路监视器(BCLM)状态时,PMIC在一个或多个方面中现在可以退出批量控制链路监视器(BCLM)状态而不对DIMM进行电力循环。主机用加密密钥值对PMIC的加密寄存器地址执行写入循环,PMIC逻辑将写入数据(例如,加密密钥值)与加密寄存器中的内容进行比较,并且如果由主机发送的加密密钥值与加密寄存器的内容相匹配,则PMIC FSM转变到调节状态。图15示出PMIC有限状态机(FSM)的高级状态转变的图。FSM在处于安全模式时退出批量控制链路监视器(BCLM)状态1510,以及在加密启用位被设置为1时(指示DIMM启用了加密密钥)进入调节状态1520(如图15中的1530所示),并且由PMIC接收的加密数据在写入周期期间被与加密寄存器的内容相匹配。 [0058] 本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),这些计算机可读程序指令用于使处理器执行本发明的各方面。 [0059] 计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD‑ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。 [0060] 本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络(例如因特网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。 [0061] 用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括诸如Smalltalk、C++等的面向对象的编程语言、以及诸如“C”编程语言的传统过程编程语言或类似编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。 [0062] 在此参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。 [0063] 这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。 [0064] 计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。 [0065] 附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。在此方面,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实现中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块可以基本上同时执行,或者这些块有时可以以相反的顺序执行。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。 [0066] 此外,根据各种实施例的系统可包括处理器和与处理器集成和/或可由处理器执行的逻辑,该逻辑被配置为执行本文所述的处理步骤中的一个或多个。集成意味着处理器具有嵌入在其中的逻辑作为硬件逻辑,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。处理器可执行意味着逻辑是硬件逻辑;软件逻辑,诸如固件、操作系统的一部分、应用程序的一部分;等等,或硬件和软件逻辑的某一组合,硬件和软件逻辑可由处理器访问并且被配置为在由处理器执行时使处理器执行一些功能。软件逻辑可以存储在任何存储器类型的本地和/或远程存储器上,如本领域中已知的。可以使用本领域已知的任何处理器,诸如软件处理器模块和/或硬件处理器,诸如ASIC、FPGA、中央处理单元(CPU)、集成电路(IC)、图形处理单元(GPU)等。 [0067] 将清楚的是,前述系统和/或方法的各种特征可以以任何方式进行组合,从而从以上呈现的描述中创建多个组合。 [0068] 还应当理解,本发明的实施例可以按代表客户部署的服务的形式来提供,以按需提供服务。 [0069] 已经出于说明的目的呈现了本发明的各种实施例的描述,但并不旨在是详尽的或者限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。在此使用的术语被选择以最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解在此公开的实施例。