Method and apparatus for securing a memory module - Patents.com
By introducing PMICs with voltage regulation functions into the memory subsystem of the computer system, and using their state switching and encryption key storage mechanisms, the problem of unauthorized access is solved and effective protection of sensitive data is achieved.
Patent Information
- Application Number
- JP2022579671
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-07-02
- Filing Date
- 2021-06-01
- Publication Date
- 2025-04-08
- Estimated Expiration
- 2041-06-01
AI Technical Summary
The memory subsystem of existing computer systems lacks effective security measures in the face of unauthorized access, resulting in the possibility of sensitive data being compromised or tampered with.
By introducing a power management interface controller (PMIC) with voltage regulation function into the memory module, the PMIC has two operating states: one allows read and write operations, the other prevents read operations, and controls access rights of the memory module by storing the encryption key in read-only memory, combined with the timer mechanism.
Effectively prevent unauthorized access, ensure the security of sensitive data, while maintaining the readability and writability of data during authorized access.
Smart Images

Figure 0007658683000001 
Figure 0007658683000002 
Figure 0007658683000003
Abstract
Description
[Technical field]
[0001] The present invention relates to computer or information processing systems, processors and memory subsystems, and more particularly to securing memory subsystems from unauthorized access. [Background technology]
[0002] Recent advances in information technology and the widespread use of the Internet to store and process electronic information and data have placed ever-increasing demands on computing systems to acquire, process, store, and distribute information. Computing systems continue to develop to improve the speed at which computers can execute increasingly complex applications for business, personal use, and entertainment. The overall performance of a computer system is affected by each of the major elements of computer architecture, including the performance, efficiency, and structure of the processor, memory caches, input / output (I / O) subsystems, memory control functions, memory devices and subsystems, and associated memory interface or interconnection elements.
[0003] The ever-increasing speed of processors executing increasingly complex applications places increasingly stringent performance demands on all of the other subsystems in the computer, including the memory subsystem, where data is stored, accessed, and updated multiple times during the operation of an application or program. The memory subsystem in most computers is typically operated and controlled by a memory controller. In many memory subsystems, the memory controller may control multiple memory devices. The memory devices may be arranged as ranks or channels or both.
[0004] Computer systems such as servers, desktop and laptop computers are commonly designed with memory subsystems configured as memory modules that include industry standard (IS) DIMMs (ISDIMMs). A computer's memory subsystem often includes one or more memory modules, typically one or more DIMMs, each containing several memory devices, e.g., dynamic random access memory (DRAM) devices. A DIMM may have one or more ranks and channels of memory devices. One or more memory devices on a memory module contain information and data, and may include secret, confidential, or personal information or a combination thereof that is susceptible to hacking or unsecure access. These unsecure unauthorized accesses may carry away valuable and / or confidential information. It would be advantageous to provide security measures, techniques and / or systems to protect such memory subsystems and modules from unauthorized access. Summary of the Invention
[0005] The summary of the present disclosure is provided to aid in the understanding of information processing systems, processors, and memory systems, their architectural structures, and methods for securing access to information, but is not intended to limit the disclosure or the present invention. The present disclosure is directed to those skilled in the art. It should be understood that various aspects and features of the present disclosure may be advantageously used individually in some cases or in combination with other aspects and features of the present disclosure in other cases. Thus, modifications and changes may be made to the information processing systems, processors, memory systems, their architectural structures, and methods of operation to achieve different effects.
[0006] In one or more embodiments, a method, technique, and / or memory system for storing data is disclosed that includes providing a memory module having one or more memory devices for storing data and a voltage regulator for controlling voltage levels supplied to the one or more memory devices, the voltage regulator having a first state that allows write and read operations on the one or more memory devices and a second state in which the voltage regulator prevents at least read operations on the one or more memory devices; storing an encryption key value in a read-only memory on the voltage regulator; copying the encryption key value from the read-only memory on the voltage regulator to a voltage regulator register; setting a voltage regulator encryption timer to a period of time; and transitioning the voltage regulator to the second state in response to expiration of the voltage regulator encryption timer period. In one aspect, the method and / or system further includes receiving, by a voltage regulator, a host encryption key from a system remote from the memory module, comparing the host encryption key to an encryption key value in a voltage regulator register, and in response to the host encryption key matching the encryption key value, resetting a voltage regulator encryption timer such that the voltage regulator remains in the first state. The method and / or system further includes not resetting the voltage regulator encryption timer in response to the host encryption key not matching the encryption key value. In one embodiment, in response to the transition to the second state, the voltage regulator changes a voltage level supplied to the one or more memory devices to a low voltage level state that renders data on the one or more memory devices inaccessible. In one aspect, the voltage regulator controller changes a voltage level supplied by the voltage regulator to the one or more memory devices to a low voltage level state.According to one embodiment, one or more of the one or more memory devices is volatile memory, and in response to a transition to the second state, data in the one or more volatile memory devices is saved to non-volatile memory.
[0007] In one aspect, the method and / or system further includes determining whether a host encryption key is received by the voltage regulator from the remote system from the memory module while the voltage regulator is operating in the second state, comparing the host encryption key to an encryption key value in the voltage regulator register, and transitioning the voltage regulator to the first state in response to the host encryption key matching the encryption key value. In response to transitioning the voltage regulator to the first state, the voltage level provided by the voltage regulator is changed to a second voltage level state that permits read and write operations at the one or more memory devices. According to one embodiment, in response to transitioning the voltage regulator to the first state, the voltage regulator resets a voltage regulator encryption timer, and in one aspect, in response to transitioning the voltage regulator to the first state, resets a recovery bit to return the voltage regulator to the second voltage level state. During system setup, the encryption key is loaded into a read-only memory of the voltage regulator, and a matching encryption key value is stored in a location remote from the memory module, and a duration for the voltage encryption timer is programmed.
[0008] A memory system for storing data is disclosed, the memory system including a memory module having at least one memory device configured to store data, the memory module having a voltage regulator having circuitry and logic for supplying voltage levels to the at least one memory device to control read and write operations to the at least one memory device, the voltage regulator having a first state that allows write and read operations at the at least one memory device and a second state in which the voltage regulator prevents at least read operations at the at least one memory device. In one aspect, the voltage regulator includes a read-only memory for storing an encryption key, a voltage regulator register for receiving and storing the encryption key from the read-only memory, an encryption timer for setting a time period, and a voltage regulator secure controller for controlling a voltage level supplied to at least one memory device, the voltage regulator secure controller having logic for comparing an encryption key value received by the voltage regulator to an encryption key in the voltage regulator register, the voltage regulator being configured to store the encryption key value in the read-only memory on the voltage regulator, copy the encryption key value from the read-only memory on the voltage regulator to the voltage regulator register, set the voltage regulator encryption timer to a time period, and transition the voltage regulator to a second state in response to the expiration of the voltage regulator encryption timer. In one aspect, the voltage regulator is further configured to receive a host encryption key from a system remote from the memory module, compare the host encryption key to the encryption key value in the voltage regulator register, and reset the voltage regulator encryption timer to remain in the first state in response to the host encryption key matching the encryption key value.
[0009] The above and other objects, features and advantages of the present invention will be apparent from the following more particular description of illustrative embodiments of the invention, as illustrated in the accompanying drawings, in which like reference numerals generally represent like parts of the illustrative embodiments of the present invention.
[0010] Various aspects, features, and embodiments of information processing systems, processors, and memory subsystems, their architectural structures, and methods of operation will be better understood when read in conjunction with the figures provided. Although embodiments are provided in the figures for purposes of illustrating aspects, features, or various embodiments or combinations of information processing systems, processors, memory subsystems, their architectural structures, and methods of operation, the claims should not be limited to the exact arrangements, structures, assemblies, subassemblies, functional units, circuits, features, aspects, embodiments, devices, mechanisms, methods, processes, or techniques shown, and the illustrated arrangements, structures, assemblies, subassemblies, functional units, circuits, features, aspects, embodiments, devices, mechanisms, methods, processes, and techniques may be used alone or in combination with other arrangements, structures, assemblies, subassemblies, functional units, circuits, features, aspects, embodiments, devices, mechanisms, methods, processes, and techniques. [Brief description of the drawings]
[0011] [Figure 1] FIG. 1 illustrates a typical computing or data processing system. [Diagram 2] FIG. 1 illustrates a computing or processing system including a memory subsystem according to one embodiment. [Diagram 3] FIG. 2 illustrates a memory subsystem according to one embodiment. [Figure 4] FIG. 2 illustrates a memory subsystem according to one embodiment. [Diagram 5] FIG. 2 illustrates a memory subsystem according to one embodiment. [Figure 6]FIG. 2 illustrates a memory subsystem according to one embodiment. [Figure 7] FIG. 2 illustrates a memory subsystem according to one embodiment. [Figure 8] FIG. 1 illustrates an information processing system according to an embodiment. [Figure 9] FIG. 1 illustrates an information processing system according to an embodiment. [Figure 10] FIG. 2 illustrates a memory module voltage regulator, also referred to as a power management interface controller (PMIC), according to one embodiment. [Figure 11] 1 is a flow diagram of a method for securing contents of a memory module from unauthorized access according to one embodiment. [Figure 12] 1 is a flow diagram of a method according to one embodiment for configuring a memory module to prevent unauthorized access to its contents. [Figure 13] 1 is a flow diagram of a method and operation of a memory module according to one embodiment for activating the memory module to prevent non-secure or unauthorized access to its contents. [Figure 14] 1 is a flow diagram of a method according to one embodiment for restoring a memory module that has entered a restricted mode to prevent unauthorized access to its contents. [Figure 15] FIG. 2 illustrates a high-level state transition diagram for a PMIC finite state machine (FSM) in accordance with one or more embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0012] The following description is made to illustrate the general principles of the present invention and is not intended to limit the inventive concepts claimed in this application. In the following detailed description, many details are set forth to provide an understanding of information processing systems, processors, memory systems, their architectural structures, and methods of operation, but those skilled in the art will appreciate that many different embodiments of information processing systems, processors, memory systems, their architectural structures, and methods of operation can be practiced without those specific details, and the claims and the present invention should not be limited to the arrangements, structures, embodiments, assemblies, subassemblies, features, functional units, circuits, processes, methods, aspects, features, or details specifically described and illustrated herein. Also, specific features, aspects, and embodiments described herein may be used in combination with other described features, aspects, or embodiments or combinations thereof in each of the various possible combinations and permutations.
[0013] Unless otherwise specifically defined herein, all terms should be given their broadest possible interpretation, including the meaning implied from the specification, the meaning understood by a person skilled in the art, or the meaning defined in dictionaries, treatises, etc., or any combination thereof. It should also be noted that, as used in the specification and the appended claims, the singular forms "a," "an," and "the" include plural referents unless otherwise specified.
[0014] A computing or information processing (data processing) system 100 suitable for storing and / or executing program code can take many forms, and in one embodiment includes at least one processor 102, which may be a controller or part of a controller coupled directly or indirectly to memory devices or elements through a system bus 106, as shown in FIG. 1. The computing or information processing system 100 of FIG. 1 is shown with the processor 102, a random access memory (RAM) 103, a non-volatile memory 104, a device specific circuit 101, and an I / O interface 105. Alternatively, the RAM 103 and / or the non-volatile memory 104 may be included in the processor 102, as may the device specific circuit 101 and the I / O interface 105. The processor 102 may comprise, for example, a general purpose microprocessor, a custom processor, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), discrete logic, etc. RAM 103 is generally used to hold variable data, stack data, executable instructions, etc., and may include secret or confidential data. RAM 103 may include dynamic random access memory or DRAM. In one embodiment, RAM 103 may comprise double data rate (DDR) synchronous DRAM or SDRAM. RAM 103 may include memory devices arranged on a module, such as, for example, a dual in-line memory module, also known as a DIMM.
[0015] According to various approaches, non-volatile memory 104 may comprise any type of non-volatile memory such as, but not limited to, Electrically Erasable Programmable Read Only Memory (EEPROM), Flash Programmable Read Only Memory (PROM), battery backed-up RAM, hard disk drives, etc. Non-volatile memory 104 is generally used to hold executable firmware, including programming instructions that can be executed to cause processor 102 to perform certain functions, and any non-volatile data.
[0016] In some embodiments, the I / O interface 105 may include a communication interface that allows the processor 102 to communicate with devices external to the controller. Examples of communication interfaces may include, but are not limited to, a serial interface such as RS-232, Universal Serial Bus (USB), Small Computer Systems Interface (SCSI), RS-422, or a wireless communication interface such as Wi-Fi, Bluetooth, Near Field Communication (NFC) or other wireless interface. The computing system 100 may communicate with external devices via the communication interface 105 in any communication protocol, such as Automation / Drive Interface (ADI).
[0017] 2 illustrates an exemplary processing system 200 that may be part of a larger computer or information processing system structure or network. The processing system 200 includes a control processor system or processor 202, which is a processing subsystem including at least one processor unit (CPU) or microprocessor 206 that may be configured to interface with a memory control unit (MCU) 210. The processor or CPU 206 may be a module that processes read, write, and configuration requests from a system controller (not shown). The processor 206 may be a multi-core processor. The MCU 210 may include a memory controller synchronous (MCS) 208, also referred to as a memory controller, that controls communication with one or more memory devices 250 in the memory subsystem 220. The MCU 210 and MCS 208 may include one or more processing circuits, or processing may be performed by or in conjunction with the processor 206. The control processor system 202 communicates with the memory subsystem 220 through a communication bus 215. The control processor system 202, the processor or CPU 206, the memory control unit (MCU) 210, and the MCS 208, individually and collectively, may be referred to herein as a host. As used herein, host is used broadly to refer to a processor, controller, or device that sends and receives command and / or control signals to and from a memory system or memory subsystem. A host also generally sends and receives data (signals) to and from the memory system or subsystem.
[0018] Systems, architectures, and / or methods for managing and securing data are disclosed, and in one aspect, systems, architectures, and / or methods for preventing unauthorized access to data on a memory module are disclosed. In one embodiment, systems, architectural structures, and / or methods are disclosed that use an encryption key transmitted and received by a memory subsystem, and in one aspect, the encryption key is transmitted by a host to the memory subsystem. In one or more embodiments, if the memory subsystem does not receive the encryption key, the memory subsystem shuts down power and does not allow access to the memory subsystem.
[0019] 3-7 illustrate an example of a memory subsystem 300 in which embodiments of the present disclosure may be implemented. Although FIGS. 3-7 illustrate the memory system 300 as one memory module 325, e.g., a dual in-line memory module or DIMM 320, it is understood that the memory subsystem 300 may include more or fewer memory modules 325, e.g., DIMMs 320, and typically has several DIMMs 320. Each memory module 325 may include one or more memory devices 330, and typically includes several memory devices 330. In one or more embodiments, the memory module 325 includes circuitry and logic for managing and storing data, including performing read and write operations to one or more memory devices. FIG. 3 illustrates an RDIMM configuration, FIG. 4 illustrates an NVDIMM Type N, FIG. 5 illustrates an NVDIMM Type P, FIG. 6 illustrates a differential DIMM, and FIG. 7 illustrates a SODIMM system. The DIMM 320 of Figures 3-4 and 7 includes one or more volatile memory devices 350, such as DRAM 350. The DRAM 350 is preferably a double data rate (DDR) synchronous DRAM 350. The DIMM 320 may include non-volatile memory devices 355, including flash or storage class memory (SCM) 355. Figures 3-7 show a DIMM 320 having an architecture consistent with DDR5. The memory system architecture may be formatted and structured to support DDR4, DDR5, although the methods, systems, and architectures disclosed and taught may be applicable to other configurations, including future standards.
[0020] The memory devices 330 can be integrated circuits or chips and can form basic memory cells that hold bits of information. The memory cells in a memory device 330, such as a DRAM 350, are typically arranged as banks, with each bank being an array of rows and columns. The memory devices 330 are typically 4, 8 or 16 bit wide, as indicated by the symbols x4, x8, or x16. Often, the memory devices 330 are arranged as ranks or channels, such that a cycle reads or writes multiple memory devices during a cycle. A rank or channel is typically a set of memory devices 330 that respond to the same command and the same address at the same time with different requested data.
[0021] The memory or data storage system 300 can be configured to store data and provide storage services to one or more hosts, e.g., processors, which may be connected to the storage system 300 directly or through a network (e.g., through the Internet). The memory subsystem 300 can include interfaces, as shown in FIGS. 8-9, to support communication and data exchanged with the host 305. For ease of illustration, the interfaces between one memory module 325, e.g., DIMM 320, and the host 305 are shown in FIGS. 8-9, but it should be understood that the host 305 typically interfaces and communicates with many memory modules 325. In FIGS. 8-9, a pin socket 310 houses the memory module 325, e.g., DIMM 320. For ease of illustration, only one set of connections is shown between the host 305, the pin socket 310, and the memory module 325, namely, the Power Good signal connection 1088, the SCL connection, the SDA connection, and the SAA connection. Not shown are connections, interfaces, and buses for transmitting data and control and command communications between the host 305 and the memory module 325. FIG. 8 illustrates an interface and memory module 325 for compatibility with DDR5 RDIMMs, LRDIMMs, NVDIMM Type N, NVDIMM Type P, and SODIMMs, and shows only some of the components on the memory module 325, including SPD hub 360, register clock driver (RCD) 365, and voltage regulator module (VRM) 380, also known as power management interface controller or PMIC 380. FIG. 9 illustrates an interface and memory module 325 for compatibility with DDR5 and DDR4 DDIMMs, and shows only some of the components on the memory module 325, including SPD hub 360, voltage regulator module (VRM) or PMIC 380, and buffer 370.
[0022] Power is provided to the memory module 325 by a voltage regulator associated with the processor or host side of the information system. The voltage regulator is preferably external to the memory module 325 and not implemented on the memory module 325. The voltage regulator may be on a system board, a motherboard, a server backplane, or may be otherwise associated with the host. The voltage regulator may provide one or more voltages to the memory module 325. In one embodiment, the voltage regulator preferably provides 12 volts and 3.3 volts to the memory module 325. Depending on the design and configuration of the system, other voltages may be used and the voltage regulator may provide other or multiple voltages to the memory module 325. Power from the voltage regulator is provided to the memory module 325 through a module pin socket or connector 310 (shown in FIGS. 9-10). The pin socket 310 has a set of pins that contact contact pads 316 on the module 325. (See FIGS. 3-7). One or more of the pins in the socket 310 may be used to supply voltage / power to the memory module 325 .
[0023] A voltage regulator module or PMIC 380 is implemented on the memory module 325 as shown in FIGS. 3-9. Power, e.g., voltage, provided to the memory module 325 may be provided to the PMIC 380 on the memory module 325. The PMIC 380 provides voltage regulation to the memory module 325, which includes memory devices 330, e.g., DRAM, Flash, and / or SCM, the RCD 365, and I2C components (e.g., SEEPROM, temperature sensor, and media controller). The on-board PMIC 380 outputs one or more different regulated voltage levels. The PMIC 380 includes circuitry and logic for controlling and regulating the voltage levels provided to the memory devices 330, and other memory module components. Although Figures 3-5 and 7-8 show only one on-board PMIC 380, additional PMICs 380, such as those shown in Figures 6 and 9, may be provided on memory module 325 to supply appropriate voltages (power) to the various components on memory module 325, including memory device 330.
[0024] In one or more embodiments, systems and / or techniques are disclosed for preventing unauthorized or unsecured access to a memory subsystem, e.g., one or more memory modules each having one or more memory devices. In one embodiment, if an encryption key is not received by the memory module within a period of time, the memory module changes to a low power state to prevent data access. In one or more embodiments, the systems and / or techniques utilize a programmable timer in the PMIC along with the processor to create a synchronized and secure memory module. When the processor sends periodic write cycles to an encryption key address on the PMIC, it synchronizes with the memory module. In one aspect, the PMIC resets or reconfigures the encryption timer of the PMIC each time the PMIC receives an encryption key. The memory remains in an operational state as long as the PMIC receives the proper encryption key within the period of the encryption timer of the PMIC. If the PMIC does not receive an encryption key, after an allotted time, the PMIC sends a signal to prevent further access to the memory devices on the memory module. In one or more embodiments, the PMIC can power down the memory module or place the memory module in a low power state. In one aspect, the PMIC notifies the processor that the memory module is locked out due to non-secure or unauthorized access. To prevent the memory module from entering a low power or power down mode or to bring the memory module out of a low power or power down mode, the PMIC must receive an encryption key into a key register on the memory module. In one or more embodiments, the encryption key is received from a unit remote from the memory module, such as from a host / processor, and in one aspect, the processor / host writes the encryption key to the memory module.
[0025] FIG. 10 illustrates a representative PMIC 380 provided on one or more memory modules, including, for example, the DIMMs of FIGS. 3-9. In one or more embodiments, the PMIC 380 includes a read-only memory (ROM) circuit 1010. A portion of the PMIC's ROM 1010 includes an addressable register 1012, preferably a two-byte addressable register field or entry 1012, that is used to store an encryption key value. The contents of the addressable register 1012 are not readable by a user. In one embodiment, the encryption key value 1015 is programmed into the addressable register 1012 in the ROM 1010 during system manufacturing testing when the memory module is installed in a system prior to shipment to a customer. Upon power-up of the PMIC 380, the contents of the addressable register 1012 in the ROM 1010, including the encryption key 1015, are transferred to the PMIC's register space 1020. In one or more embodiments, the system configures the PMIC timer such that the PMIC encryption key value 1015 in the PMIC register 1020 is not enabled until the host sets the encryption enable bit 1022 in the PMIC register 1020. After the host sets the encryption enable bit 1022, the host must initiate an operation to transmit an encryption key to the memory module, and more specifically, to the PMIC 380 in the memory module. A comparison of the encryption key transmitted by the host to the encryption key value 1015 held in the PMIC register 1020 is performed in the secure logic unit or secure controller 1040. The PMIC 380 resets the PMIC encryption timer 1050 each time the encryption key value 1015 is received by the PMIC register 1020. If the PMIC 380 does not receive the encryption key value 1015 within the allotted time, which may be predefined and includes retries, the PMIC 380 transmits a signal to prevent further access to the memory device 330.In one or more embodiments, after the encryption key is enabled, e.g., after the encryption enable bit is enabled, the PMIC secure controller 1040 can prevent unsecured access to the memory module 325 by controlling the voltage supply for the memory device 330 and notifying the processor / host that the memory module 325 is in an unsecured state.
[0026] In one or more embodiments, if the PMIC 380 has not received the encryption key after the allotted time, in one aspect, the PMIC sends a GSI_N signal 1085 to the RCD 365 or buffer 370, depending on the type of memory module, to force the memory device into self-refresh and prevent further access to the memory device. After a certain amount of time, the PMIC 380 can either power down the memory module or place the memory module in a low power state. Thereafter, in one aspect, the PMIC drives a power good signal 1088 low to inform the processor that the memory module 325 has been locked out due to unsecured or unauthorized access. To bring the PMIC 380 out of the low power or power down mode, the PMIC 380, and in one aspect the PMIC registers 1020, need to receive the encryption key value 1015, for example from the processor / host. In response to receiving the encryption key value 1015 that matches the value in the PMIC register 1020, the PMIC 380 notifies the RCD 365 by deasserting the GSI_N signal 1085 to bring the memory device 330 out of self-refresh (SRE) mode.
[0027] For the NVDIMM Type N shown in FIG. 4, during a power down cycle, the contents of the DRAM memory device 350 are transferred and stored in the non-volatile flash memory 355. After rebooting the NVDIMM Type N memory module 325, the contents and data are automatically transferred from the non-volatile flash memory 355 to the DRAM memory device 350, preferably without processor intervention. In one embodiment, the system may be programmed to allow the non-volatile flash memory 355 to transfer data to the DRAM memory device 350 in response to the encryption key value being received by the PMIC 380, or to prevent the memory device 330 from booting until the encryption key value 1015 is received by the PMIC 380, or both. For situations where the PMIC 380 allows the media controller to transfer the contents of the non-volatile flash memory 355 back to the DRAM memory device 350, the PMIC may prevent system access by asserting the power good signal 1088 low to notify the processor / host. 5, the PMIC 380 signals the RCD or buffer to suppress the power good signal until the PMIC register 1020 receives a matching encryption key value 1015. After the encryption key value is received and the PMIC is reset, the PMIC 380 can activate the memory module 325 for normal operation.
[0028] The processor or host can store the encryption key value anywhere in the system where the system can access the encryption key value upon startup. In one or more embodiments, the encryption key data can be stored separately throughout the system, in different parts of the processor registers. In one aspect, the encryption key should be shared with the system owner to allow the system owner to change the encryption key, for example, periodically to maintain cybersecurity protocols. In one or more aspects, the encryption key can be deactivated by rebooting the system and reconfiguring the memory module 325.
[0029] 11 is an exemplary flow chart according to one embodiment illustrating and describing a method of operating an information system to prevent unauthorized or unsecure access to a memory module, e.g., a DIMM, according to one embodiment of the present disclosure. Method 1100 is described for convenience and is not intended to limit the disclosure as including a series and / or number of steps, but it should be understood that the process need not be performed as a series of steps, or the steps need not be performed in the order illustrated and described with respect to FIG. 11, or both, and that the process may be integrated, or one or more steps may be performed together, simultaneously, or both, or the steps may be performed in the order disclosed or in another order.
[0030] One embodiment of a method 1100 for securing a memory module and preventing non-secure access is shown in FIG. 11 and begins at 1110 by plugging the memory module into the pin connector and powering up the PMIC input voltages, for example 3.3 volts and 12 volts. At 1115, it is determined whether the module is a secure memory module. If the memory module is not a secure module (1115: no), the process proceeds to 1130. If the memory module is a secure module (1115: yes), the process proceeds to 1120 where an encryption key is stored in the memory module. In one embodiment, at 1120, the encryption key content / value is loaded into the PMIC's read only memory (ROM) space 1020 and the host stores the encryption key on the host side of the system (not in the memory module). The process of 1110-1120 is performed to set up the system and memory module and is generally not performed again until it is desired or required to change the encryption key.
[0031] At 1130, the memory module is configured. The process of configuring the memory module at 1130 is shown in more detail in process 1200 of FIG. 12. Configuring the memory module occurs when the system is started after system setup, after which the process proceeds to 1135 where it is determined whether the power supply is good. If the power supply is good (1135: yes), the system proceeds to stage 1140 where the module is activated. The process of activating the module at stage 1140 is described in more detail in process 1300 of FIG. 13. The module activation mode is a mode in which the memory module is operational as long as the encryption key is received by the PMIC, but transitions to a non-operational mode if the encryption key is not received. If the power supply is not good (1135: no), the system proceeds to a module recovery stage at 1150. The module recovery stage at 1150 is described in more detail in process 1400 of FIG. 14. After the module recovery step at 1150, process 1100 proceeds to 1160 to determine if recovery was successful. If recovery was successful at 1160 (1160: yes), process 1100 returns to 1135 to determine if the power is good. If recovery was not successful at 1160 (1160: no), the system shuts down.
[0032] Returning to the memory module configuration phase 1130, the flowchart of FIG. 12 illustrates a process 1200, which is one embodiment of the process 1130 for configuring a memory module. The method 1200 is described for convenience and is not intended to limit the disclosure as including a series and / or number of steps, but it should be understood that the process need not be performed as a series of steps, or that the steps need not be performed in the order shown and described with respect to FIG. 12, or both, and that the process may be integrated, or one or more steps may be performed together, simultaneously, or both, or that the steps may be performed in the order disclosed or in another order. It should be understood that the process 1200 for configuring a memory module is generally performed each time the memory subsystem and memory modules are powered up.
[0033] At 1210, the system determines if the memory module is a secure memory module, and if the memory module is not a secure memory module (1210:NO), the process proceeds to 1260 where the PMIC registers are configured. If the memory module is a secure memory module (1210:YES), the process 1200 / 1130 proceeds to 1220 where the PMIC timing registers are set up. In one or more embodiments, a programmable timer 1050 is set up to control the secure timing loop between the host and the memory module. The process 1200 / 1130 for configuring a secure memory module proceeds to 1230 where the PMIC secure control registers are set up. In one or more embodiments, at 1230, the control register 1020 in the PMIC 380 is programmed to allow the PMIC's finite state machine (FSM) to enter or transition to a Regulation State while the PMIC is in a secure operating state, e.g., a Bulk Control Link Monitor (BCLM) state with the secure mode bit set to zero, when the encryption key is enabled. The process 1200 / 1130 for configuring a secure memory module proceeds to 1240 and a power good output is set up. In one or more embodiments, at 1240, the PMIC secure controller or secure logic 1040 is programmed to control the power good output 1088 and the GSI_N output 1085 of the PMIC 380 to notify the host that the RCD 365 or buffer 370 has placed the memory in a low power state due to the encryption key having timed out. The process 1200 / 1130 for configuring a memory module proceeds to 1250 and an RCD low power state is set up. In one or more embodiments, at 1250, the RCD 365 is programmed to react to the GSI_N output 1085 going low and to the self refresh (SRE) and clock enable (CKE) going low. Alternatively, or additionally, or both, a low power state of the buffer 370 is set up.In one or more embodiments, at 1250, buffer 370 is programmed to respond to GSI_N output 1085 going low, as well as self refresh (SRE) and clock enable (CKE) going low. In one or more embodiments, buffer 370 is placed in a low power state via GSI_N signal 1085, and in one aspect, buffer 370 will place memory, e.g., memory device 330, in a low power state.
[0034] After 1250 for a secured memory module is set up, or after 1210 for an unsecured memory module, the process 1200 / 1130 proceeds to 1260 where the PMIC registers are configured. In one or more embodiments, at 1260, the firmware sets up the configuration registers of the PMIC, setting the output voltage, etc. The process 1200 / 1130 proceeds to 1270 where it is determined whether to activate the encryption key. If it is determined at 1270 to activate the encryption key (1270: yes), the process proceeds to 1280 where the firmware activates the encryption key and the host controller synchronizes with the encryption timer 1050 of the PMIC. After 1280, or if it is determined not to activate the encryption key (1270: no), the process 1200 / 1130 proceeds to 1290 where the PMIC output is enabled. In one or more embodiments, the firmware sends a ready enable command to activate the PMIC output voltage. The process exits the configuration process 1200 / 1130 after 1290 and proceeds to 1135 in the process 1100 shown in FIG.
[0035] Returning to the process 1140 in which a memory module is activated, the flow chart of FIG. 13 illustrates a process 1300, which is one embodiment of the process 1140 for activating a memory module. The method 1300 is described for convenience and is not intended to limit the disclosure as including a series and / or number of steps, but it should be understood that the process need not be performed as a series of steps, or that the steps need not be performed in the order shown and described with respect to FIG. 13, or both, and that the process may be integrated, or one or more steps may be performed together, simultaneously, or both, or that the steps may be performed in the order disclosed or in another order. It should be understood that the process 1300 for activating a memory module is generally performed after the memory subsystem and memory modules have been powered up and the memory system has performed read and write operations.
[0036] The process 1300 / 1140 begins by setting the recovery bit to zero at 1305. At 1310, the system checks whether the memory module is encryption key enabled. If the memory module is not encryption enabled (1310: no), the process 1300 / 1140 ends and proceeds to 1135 in the process 1100 to check whether the power is good. If the memory module is key enabled (1310: yes) at 1310, the process proceeds to 1315 to determine whether an encryption key has been received by the PMIC. In this regard, for generally secure operation, the host transmits an encryption key value to the PMIC, and the PMIC checks the encryption key value transmitted by the host to see if it matches the encryption key stored in the PMIC registers 1020. Determining whether the encryption key value received by the PMIC matches the encryption key held in the PMIC registers 1020 is preferably performed by the PMIC secure controller logic 1040. If at 1315 an encryption key has been received, e.g., an encryption key value has been received and matches (1315: yes), the process proceeds to 1320 where the PMIC timer is reset or reset to restart. As can be appreciated, the PMIC timer is configured during 1200 / 1130 when the memory module is configured and programmed. The period during which the PMIC should receive the encryption key can be programmed and set to any of a number of periods, e.g., one second, one minute, one hour, etc. If an encryption key has not been received or the received encryption key does not match the encryption key value in the PMIC register (1315: no), or after the PMIC timer has been reset at 1320, the process 1300 / 1140 proceeds to 1325 where it is determined whether the PMIC timer has timed out, e.g., expired. During the secure operating state in which the host has provided an encryption key value to the PMIC, the memory module operates through 1315, 1320, and no branch of 1325 in which the PMIC encryption timer does not time out and the memory module may perform read, write, and refresh operations.
[0037] If at 1325 it is determined that the PMIC encryption timer has timed out (1325:YES), e.g., the proper encryption key has not been received, indicating potential unauthorized access, the process 1300 / 1140 proceeds to 1330 and the PMIC transitions to a regulated state. In one embodiment, the PMIC 380 exits a secure operating state, e.g., a bulk control link monitor (BCLM) state, and transitions to a regulated state. In one aspect, the PMIC finite state machine transitions from the BCLM state to the regulated state by changing the secure bit to 1. In one or more embodiments, after the PMIC transitions to the regulated state, the PMIC transmits a GSI_N signal 1085 to the RCD 365 and / or the buffer 370, depending on the memory module configuration (see FIG. 8 and FIG. 9). At 1335, the system checks whether the memory module has an SDRAM memory device, and in response to the memory module having an SDRAM memory device (1335: yes), the process proceeds to 1340 where the RCD places the DRAM in self-refresh mode (SRE) and drives the clock enable (CKE) low. The process proceeds to 1345 where the PMIC waits for the RCD to place the memory in a self-refresh (SRE) low power state. The process proceeds to 1350 after 1345, and also to 1350 after 1330 if there is no SDRAM on the memory module, where the voltage to the memory device is changed. In one or more embodiments, the PMIC secure controller 1040 changes the voltage to the memory device to maintain the memory contents and asserts the power good output 1088 low. In this state where the power to the memory device is asserted low, the contents of the memory device on the memory module are inaccessible. After 1350, process 1300 exits module activation phase 1140 and proceeds to 1135 to determine if the power source is good. If the memory module transitioned to a regulated state at 1330 and the memory voltage was changed at 1350, for example because the PMIC 380 was not provided with the correct encryption key, then the power source is not good (1135: NO) and the process proceeds to the module recovery phase at 1150.
[0038] The flow chart of Figure 14 illustrates a process 1400, which is one embodiment of the memory module recovery process 1150 of Figure 11. Method 1400 is described for convenience and is not intended to limit the disclosure as including a series and / or number of steps, but it should be understood that the process need not be performed as a series of steps, or that the steps need not be performed in the order shown and described with respect to Figure 14, or both, and that the process may be integrated, or one or more steps may be performed together, simultaneously, or both, or that the steps may be performed in the order disclosed or in another order. It should be understood that the process 1400 for configuring a memory module is generally performed each time the memory subsystem and memory module are powered up.
[0039] The module recovery process 1400 / 1150 begins at 1410 where the system determines whether the memory module is encryption key enabled. If the memory module is not encryption key enabled (1410: no), the process ends the module recovery process 1400 / 1150 and proceeds to 1160 where it is determined whether the recovery was successful. If the memory module is encryption key enabled (1410: yes), the process 1400 / 1150 proceeds to 1420 where it is determined whether the power is off. If the power is off (1420: yes), the process ends the module recovery process 1400 / 1150 and proceeds to 1160 where it is determined whether the recovery was successful. If the power to the memory module is not off (1420: no), the process proceeds to 1430 where it is determined whether the encryption key has been received. In one or more embodiments, determining whether an encryption key has been received includes determining whether the PMIC has received an encryption key, e.g., an encryption key value that matches an encryption key stored in the PMIC register 1020. If the encryption key value received by the PMIC, e.g., from the host, matches the encryption key held in the PMIC register, the key is deemed to have been received at 1430. If an encryption key has not been received (1430: no), the process 1400 / 1150 returns to 1420 to determine whether the power is off. The process 1400 remains in this loop until an encryption key is received or the PMIC, e.g., the memory module, is powered off. If an encryption key has been received (1430: yes), the process 1400 / 1150 proceeds to 1440, where the PMIC changes the memory voltage. In one or more embodiments, the PMIC secure controller 1040 changes the memory voltage to activate the power setting. In one aspect, the power good output 1088 is asserted high and the GSI_N signal 1085 is asserted high to the RCD 365 .
[0040] The process proceeds to 1450 and the PMIC transitions to a secure operating state. In one or more embodiments, the PMIC finite state machine (FSM) transitions from the regulated state to a bulk control link monitor (BCLM) state with the secure mode bit set to zero. In one embodiment, the secure mode bit is transitioned to zero. The process proceeds to 1460 and the encryption timer 1050 is reconfigured. In one aspect, the PMIC reloads the encryption timer. The process proceeds to 1470 and the recovery bit is set to one. In one aspect, the recovery bit set to one returns the memory module to active power. After 1470, the recovery process 1400 / 1150 is complete and the process 1400 / 1150 terminates. Upon exiting the recovery process 1400 / 1150 after 1470 with the recovery bit set to one and active power returned to the memory module, the process proceeds to 1160 of FIG. 11. At 1160 it is determined whether the recovery was successful, and if the recovery was successful (1160: YES), the process returns to 1135 to determine if the power supply is good. Since the recovery was successful and the power supply has been reactivated, the power supply should be good at 1135 (1135: YES) and the memory module should enter the module activation phase at 1140.
[0041] The disclosed and illustrated methods and techniques are compatible with and operate with DDR5 Industry Standard (IS) DIMMs that have a PMIC on the printed circuit board (PCB). The DDR5 PMIC is designed with a finite state machine (FSM) that supports a secure mode that requires re-use of the VIN bulk power (12 volts) and VINMGNT (3.3 volts) sources to the DIMM to exit the secure mode. When the PMIC is placed in the Bulk Control Link Monitor (BCLM) state with the Secure Mode bit set to zero, the PMIC registers that control the 4-rail configuration (SWA, B, C, D) are not writeable. Essentially the user is locked out from making any voltage output adjustments that may be required. To exit the Bulk Control Link Monitor (BCLM) state, the user must typically power cycle the DIMM.
[0042] In one or more embodiments, when the encryption register of the PMIC is enabled and the PMIC is placed in the bulk control link monitor (BCLM) state with the secure mode bit set to zero, in one or more aspects, the PMIC can exit the bulk control link monitor (BCLM) state without power cycling the DIMM. The host performs a write cycle to the encryption register address of the PMIC with an encryption key value, the PMIC logic compares the write data, e.g., the encryption key value, to the contents in the encryption register, and if the encryption key value sent by the host matches the contents of the encryption register, the PMIC FSM transitions to a regulated state. FIG. 15 shows a high level state transition diagram for the PMIC finite state machine (FSM). The FSM exits the bulk control link monitor (BCLM) state 1510 while in the secure mode and enters the regulated state 1520 as shown by 1530 in FIG. 15, when the encryption enable bit is set to 1 indicating the DIMM is encryption key enabled, and during the write cycle, the encrypted data received by the PMIC is compared to the contents of the encryption register.
[0043] The present invention may be a system, a method, and / or a computer program product, which may include a computer-readable storage medium having computer-readable program instructions for causing a processor to perform aspects of the present invention.
[0044] A computer readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. A non-exhaustive list of more specific examples of computer readable storage media includes the following: portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices such as punch cards or raised structures in grooves with instructions recorded thereon, and any suitable combination of the above. As used herein, a computer-readable storage medium should not be construed as a transitory signal in itself, such as an electric wave or other freely propagating electromagnetic wave, an electromagnetic wave propagating through a waveguide or other transmission medium (e.g., light pulses passing through a fiber optic cable), or an electrical signal transmitted through a conductor.
[0045] The computer readable program instructions described herein may be downloaded from the computer readable storage medium into each computing / processing device or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may comprise copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface in each computing / processing device receives the computer readable program instructions from the network and forwards the computer readable program instructions for storage in the computer readable storage medium in the respective computing / processing device.
[0046] The computer readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine language instructions, machine dependent instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including object oriented programming languages such as Smalltalk, C++, and the like, and traditional procedural programming languages such as the C programming language or similar programming languages. The computer readable program instructions may run entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the last scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform aspects of the invention.
[0047] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.
[0048] These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, operated by the processor of the computer or other programmable data processing apparatus, create means for performing the functions / operations specified in the blocks of the flowcharts and / or block diagrams. These computer readable program instructions may also be stored on a computer readable storage medium, capable of directing a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner, such that the computer readable storage medium on which the instructions are stored comprises an article of manufacture including instructions for performing aspects of the functions / operations specified in the blocks of the flowcharts and / or block diagrams.
[0049] The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to generate a computer-implemented process and cause the computer, other programmable apparatus, or other device to perform a series of operational steps such that the instructions operating on the computer, other programmable apparatus, or other device perform the functions / operations specified in the flowchart and / or block diagram blocks.
[0050] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or part of an instruction, which includes one or more executable instructions for performing a specified logical function. In some alternative implementations, the functions described in the blocks may occur out of the order described in the figures. For example, two blocks shown in succession may be executed substantially concurrently, or the blocks may be executed in reverse order, depending on the functionality involved. It is also noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by a dedicated hardware-based system that performs the specified functions or operations, or executes a combination of dedicated hardware and computer instructions.
[0051] Further, systems according to various embodiments may include a processor and logic integrated with and / or executable by the processor, the logic configured to perform one or more of the process steps described herein. By integrated, it is meant that the processor has logic embodied as hardware logic, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc. By executable by the processor, it is meant that the logic is hardware logic, software logic, such as firmware, part of an operating system, part of an application program, etc., or any combination of hardware and software logic accessible by the processor and configured to cause the processor to perform some function when executed by the processor. The software logic may be stored in any memory type, local and / or remote, as known to those skilled in the art. Any processor known to those skilled in the art may be used, such as a software processor module and / or hardware processor, such as an ASIC, FPGA, central processing unit (CPU), integrated circuit (IC), graphics processing unit (GPU), etc.
[0052] It will be apparent that the various features of the above systems and / or methods may be combined in any manner to produce multiple combinations from the above description.
[0053] As will be further appreciated, embodiments of the present invention may be provided in the form of a service that is deployed for customers to provide services on demand.
[0054] The description of various embodiments of the present invention is presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used in this specification are selected to best explain the principles of the embodiments, practical applications, or technical improvements beyond the technology found in the market, or to enable other skilled in the art to understand the embodiments disclosed herein.
Claims
1. 1. A method for managing data in a memory subsystem, comprising: providing a memory module having one or more memory devices for storing data and a voltage regulator for controlling voltage levels supplied to the one or more memory devices, the voltage regulator having a first state that allows write and read operations on the one or more memory devices and a second state in which the voltage regulator prevents at least read operations on the one or more memory devices; storing an encryption key value in a read only memory on said voltage regulator; copying the encryption key value from the read only memory on the voltage regulator to a voltage regulator register; setting an encryption timer for said voltage regulator to a period of time; resetting the encryption timer in response to receiving an encryption key that matches the encryption key value during the encryption timer; transitioning the voltage regulator to the second state in response to expiration of the encryption timer of the voltage regulator; A method comprising:
2. resetting the encryption timer receiving, by the voltage regulator, a host encryption key from a system remote from the memory module; comparing the host encryption key to the encryption key value in the voltage regulator register; in response to the host encryption key matching the encryption key value, resetting the encryption timer of the voltage regulator such that the voltage regulator remains in the first state; The method of claim 1 , comprising:
3. 2. The method of claim 1 , wherein in response to the transition to the second state, the voltage regulator changes the voltage level supplied to the one or more memory devices to a low voltage level state that renders the data on the one or more memory devices inaccessible.
4. 4. The method of claim 3, wherein a voltage regulator controller changes the voltage level supplied by the voltage regulator to the one or more memory devices to the low voltage level state.
5. 2. The method of claim 1 , wherein one or more of the one or more memory devices is a volatile memory, and in response to a transition to the second state, the data in the one or more volatile memory devices is preserved in a non-volatile memory.
6. loading the encryption key value into the read only memory of the voltage regulator at system setup and storing an encryption key corresponding to the encryption key value at a location remote from the memory module; programming the period for the encryption timer; The method of claim 1 further comprising:
7. 1. A method for managing data in a memory subsystem, comprising: providing a memory module having one or more memory devices for storing data and a voltage regulator for controlling voltage levels supplied to the one or more memory devices, the voltage regulator having a first state that allows write and read operations on the one or more memory devices and a second state in which the voltage regulator prevents at least read operations on the one or more memory devices; storing an encryption key value in a read only memory on said voltage regulator; copying the encryption key value from the read only memory on the voltage regulator to a voltage regulator register; setting an encryption timer for said voltage regulator to a period of time; in response to a host encryption key not matching the encryption key value, the encryption timer of the voltage regulator is not reset; transitioning the voltage regulator to the second state in response to the expiration of the encryption timer of the voltage regulator. A method comprising:
8. 1. A method for managing data in a memory subsystem, comprising: providing a memory module having one or more memory devices for storing data and a voltage regulator for controlling voltage levels supplied to the one or more memory devices, the voltage regulator having a first state that allows write and read operations on the one or more memory devices and a second state in which the voltage regulator prevents at least read operations on the one or more memory devices; storing an encryption key value in a read only memory on said voltage regulator; copying the encryption key value from the read only memory on the voltage regulator to a voltage regulator register; setting an encryption timer for said voltage regulator to a period of time; transitioning the voltage regulator to the second state in response to the expiration of the encryption timer of the voltage regulator; determining whether a host encryption key is received by the voltage regulator from a system remote from the memory module while the voltage regulator is operating in the second state; comparing the host encryption key to the encryption key value in the voltage regulator register; transitioning the voltage regulator to the first state in response to the host encryption key matching the encryption key value; A method comprising:
9. 9. The method of claim 8, further comprising, in response to transitioning the voltage regulator to the first state, changing the voltage level supplied by the voltage regulator to a second voltage level state that permits read and write operations at the one or more memory devices.
10. 10. The method of claim 9, further comprising: in response to transitioning the voltage regulator to the first state, the voltage regulator resetting the encryption timer of the voltage regulator.
11. 10. The method of claim 9, further comprising: in response to transitioning the voltage regulator to the first state, resetting a recovery bit to return the voltage regulator to the second voltage level state.
12. 1. A memory system for storing data, said memory system comprising: a memory module having at least one memory device configured to store data, said memory module having a voltage regulator having circuitry and logic for providing voltage levels to said at least one memory device to control read and write operations to said at least one memory device, said voltage regulator having a first state that permits write and read operations at said at least one memory device and a second state in which said voltage regulator prevents at least read operations at said at least one memory device; The voltage regulator comprises: a read only memory for storing an encryption key value; a voltage regulator register for receiving and storing the encryption key value from the read only memory; a cryptographic timer for setting a period of time; a voltage regulator secure controller for controlling a voltage level supplied to the at least one memory device, the voltage regulator secure controller having logic for comparing an encryption key received by the voltage regulator with the encryption key value in the voltage regulator register; Equipped with The voltage regulator comprises: storing the encryption key value in the read only memory on the voltage regulator; copying said encryption key value from said read only memory on said voltage regulator to said voltage regulator register; setting the encryption timer of the voltage regulator to the period; resetting the encryption timer in response to receiving the encryption key that matches the encryption key value during the encryption timer; transitioning the voltage regulator to the second state in response to expiration of the encryption timer of the voltage regulator. The memory system is configured to:
13. The voltage regulator further comprises: receiving a host encryption key from a system remote from the memory module; comparing the host encryption key to the encryption key value in the voltage regulator register; In response to the host encryption key matching the encryption key value, resetting the encryption timer of the voltage regulator such that the voltage regulator remains in the first state. The system of claim 12 further configured to:
14. 13. The system of claim 12, wherein the voltage regulator is further configured, in response to a transition to the second state, to change the voltage level supplied by the voltage regulator to the at least one memory device to a low voltage level state that renders the data on the at least one memory device inaccessible.
15. 15. The system of claim 14, wherein the voltage regulator secure controller changes the voltage level supplied by the voltage regulator to the at least one memory device to the low voltage level state.
16. 13. The system of claim 12, wherein the at least one memory device is a volatile memory, and in response to a transition to the second state, the memory module is configured to store the data in the at least one memory device in a non-volatile memory.
17. 1. A memory system for storing data, said memory system comprising: a memory module having at least one memory device configured to store data, said memory module having a voltage regulator having circuitry and logic for providing voltage levels to said at least one memory device to control read and write operations to said at least one memory device, said voltage regulator having a first state that permits write and read operations at said at least one memory device and a second state in which said voltage regulator prevents at least read operations at said at least one memory device; The voltage regulator comprises: a read only memory for storing an encryption key value; a voltage regulator register for receiving and storing the encryption key value from the read only memory; a cryptographic timer for setting a period of time; a voltage regulator secure controller for controlling a voltage level supplied to the at least one memory device, the voltage regulator secure controller having logic for comparing an encryption key received by the voltage regulator with the encryption key value in the voltage regulator register; Equipped with The voltage regulator comprises: storing the encryption key value in the read only memory on the voltage regulator; copying said encryption key value from said read only memory on said voltage regulator to said voltage regulator register; setting the encryption timer of the voltage regulator to the period; in response to a host encryption key not matching the encryption key value, not resetting the encryption timer of the voltage regulator; transitioning the voltage regulator to the second state in response to expiration of the encryption timer of the voltage regulator. The memory system is configured to:
18. 1. A memory system for storing data, said memory system comprising: a memory module having at least one memory device configured to store data, said memory module having a voltage regulator having circuitry and logic for providing voltage levels to said at least one memory device to control read and write operations to said at least one memory device, said voltage regulator having a first state that permits write and read operations at said at least one memory device and a second state in which said voltage regulator prevents at least read operations at said at least one memory device; The voltage regulator comprises: a read only memory for storing an encryption key value; a voltage regulator register for receiving and storing the encryption key value from the read only memory; a cryptographic timer for setting a period of time; a voltage regulator secure controller for controlling a voltage level supplied to the at least one memory device, the voltage regulator secure controller having logic for comparing an encryption key received by the voltage regulator with the encryption key value in the voltage regulator register; Equipped with The voltage regulator comprises: storing the encryption key value in the read only memory on the voltage regulator; copying said encryption key value from said read only memory on said voltage regulator to said voltage regulator register; setting the encryption timer of the voltage regulator to the period; transitioning the voltage regulator to the second state in response to expiration of the encryption timer of the voltage regulator; determining whether a host encryption key is received by the voltage regulator from a system remote from the memory module while the voltage regulator is operating in the second state; comparing the host encryption key to the encryption key value in the voltage regulator register; transitioning the voltage regulator to the first state in response to the host encryption key matching the encryption key value. The memory system is configured to:
19. the voltage regulator, in response to transitioning the voltage regulator to the first state, changes the voltage level supplied to the at least one memory device to a second voltage level state that permits read and write operations at the at least one memory device; Resetting the encryption timer of the voltage regulator The system of claim 18 further configured to:
20. 1. A memory system for storing data, said memory system comprising: a memory module having a plurality of memory devices having circuitry and logic configured to store data; and a voltage regulator having circuitry and logic configured to provide voltage levels to the plurality of memory devices; The voltage regulator comprises: a read only memory for storing an encryption key value; a register for receiving and storing the encryption key value from the read only memory; a cryptographic timer for setting a period of time; a secure controller for controlling voltage levels supplied to the plurality of memory devices, the secure controller having logic for comparing an encryption key received by the voltage regulator with the encryption key value in the register of the voltage regulator; Equipped with The voltage regulator comprises: providing voltage levels to the plurality of memory devices for controlling read and write operations to the plurality of memory devices, the voltage regulator having a first state that permits write and read operations on the plurality of memory devices and a second state in which the voltage regulator prevents at least read operations on the plurality of memory devices; storing the encryption key value in the read only memory on the voltage regulator; copying the encryption key value from the read only memory on the voltage regulator to the register of the voltage regulator; setting the encryption timer of the voltage regulator to the period; receiving a host encryption key from a system remote from the memory module; comparing the host encryption key to the encryption key value in the register of the voltage regulator; resetting the encryption timer of the voltage regulator such that the voltage regulator remains in the first state in response to the host encryption key matching the encryption key value; in response to the host encryption key not matching the encryption key value, not resetting the encryption timer of the voltage regulator; transitioning the voltage regulator to the second state in response to expiration of the period during which the encryption timer is set to operate; In response to the transition to the second state, the voltage regulator changes the voltage level supplied by the voltage regulator to the plurality of memory devices to a low voltage level state that renders the data on the plurality of memory devices inaccessible. The memory system is configured to:
Citation Information
Patent Citations
System on chip and electronic device
CN210776693U
Memory device and method of controlling the same
JP2003331241A
External storage
JP2007109148A
Mobile storage device and set-time access program
JP2009282797A
Secure communication for log reporting in memory sub-systems
US20200202017A1