Memory devices are typically provided as internal, semiconductor, integrated circuits and/or external removable devices in computers or other electronic devices. There are many different types of memory including volatile and non-volatile memory. Volatile memory can require power to maintain its data and can include random-access memory (RAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM), among others. Non-volatile memory can retain stored data when not powered and can include NAND flash memory, NOR flash memory, phase change random access memory (PCRAM), resistive random access memory (RRAM), and magnetic random access memory (MRAM), among others.
Memory devices can be combined together to form a solid state drive (SSD). An SSD can include non-volatile memory (e.g., NAND flash memory and/or NOR flash memory), and/or can include volatile memory (e.g., DRAM and/or SRAM), among various other types of non-volatile and volatile memory. In various instances, a memory system can include primary memory (e.g., main memory) and secondary memory (e.g., storage memory). Secondary memory is often non-volatile memory, is used to store programs, applications, and data on a relatively long term basis relative to main memory, and often has a much larger capacity relative to primary memory. Primary memory is often volatile, has faster access times relative to storage memory, and often temporarily stores programs, applications, and data being accessed by a host (e.g., processor, CPU, etc.). In various instances, primary memory may be directly accessible by a host processor while secondary memory may not. However, as memory technologies advance, some storage memories (or at least portions thereof) may be directly accessible by a host processor, allowing them to serve as at least a portion of main memory.
Additionally, as memory technologies advance, various non-volatile memories are being used and/or considered for use as main memory (e.g., as alternatives to DRAM). However, using non-volatile memory as main memory can introduce some security vulnerabilities that may be less of a concern with volatile memory such as DRAM. For example, since data is retained in non-volatile memory after power-off, it can be more susceptible to being compromised via various methods such as bus-snooping and/or probing the physical memory while the device is powered off, among various other methods, which may provide access to sensitive data such as cryptographic keys that often reside in main memory. Although several approaches have been proposed to solve various security concerns through data encryption, they have some limitations such as relatively high design complexity and non-trivial latency/energy overhead.