Table-based write request status tracking for a replay protected memory block (RPMB)

EP4728389A1Pending Publication Date: 2026-04-22QUALCOMM INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
EP · EP
Patent Type
Applications
Current Assignee / Owner
QUALCOMM INC
Filing Date
2023-06-15
Publication Date
2026-04-22

Smart Images

  • Figure CN2023100336_19122024_PF_FP_ABST
    Figure CN2023100336_19122024_PF_FP_ABST
Patent Text Reader

Abstract

This disclosure provides systems, methods, and devices for memory systems that support table-based write request status tracking for a replay protected memory block (RPMB). In a first aspect, a method of accessing data in a flash memory system includes a host memory controller configured to perform operations including transmitting, to a memory system, a first write request to write data to a RPMB portion of a memory module of the memory system, transmitting, to the memory system, a first read request to read a result of the first write request from a table of the RPMB portion of a memory module of the memory system, and receiving, from the memory system, an indication of the result of the first write request. Other aspects and features are also claimed and described.
Need to check novelty before this filing date? Find Prior Art

Description

TABLE-BASED WRITE REQUEST STATUS TRACKING FOR A REPLAY PROTECTED MEMORY BLOCK (RPMB)TECHNICAL FIELD

[0001] Aspects of the present disclosure relate generally to an apparatus and method for controlling a memory device. Some aspects may, more particularly, relate to an apparatus and method for controlling operations for tracking status of requests to write data to a memory storage device.

[0002] INTRODUCTION

[0003] As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. In addition, the use of information in various locations and desired portability of information is increasing. For this reason, users are increasingly turning towards the use of portable electronic devices, such as mobile phones, digital cameras, laptop computers and the like. Portable electronic devices generally employ a memory system using a memory device for storing data. A memory system may be used as a main memory or an auxiliary memory of a portable electronic device.

[0004] The memory device of the memory system may include one kind or a combination of kinds of storage. For example, magnetic-based memory systems, such as hard disk drives (HDDs) , store data by encoding data as a combination of small magnets. As another example, optical-based memory systems, such as digital versatile discs (DVDs) and Blu-ray media, store data by encoding data as physical bits that cause different reflections when illuminated by a light source. As a further example, electronic memory devices store data as collections of electrons that can be detected through voltage and / or current measurements.

[0005] Electronic memory devices can be advantageous in certain systems in that they may access data quickly and consume a small amount of power. Examples of an electronic memory device having these advantages include universal serial bus (USB) memory devices (sometimes referred to as “memory sticks” ) , a memory card (such as used in some cameras and gaming systems) , and solid state drive (SSDs) (such as used in laptop computers) . NAND flash memory is one kind of memory device that may be used in electronic memory devices. NAND flash memory is manufactured into memory cards or flash disks. Example memory cards include compact flash (CF) cards, multimedia cards (eMMCs) , smart media (SM) cards, and secure digital (SD) cards.

[0006] A memory system may, in some cases, be integrated with or otherwise connected to a host device, such as an electronic device. For example, memory systems may be integrated with host devices in a system on chip (SoC) . As one particular example, a flash memory system, which may be a universal flash storage (UFS) memory system, may be integrated into an electronic device, such as an access point (AP) , station (STA) , user equipment (UE) , base station, modem, camera, automobile, or other system.

[0007] One standard for organization and operation of electronic memory devices is the Universal Flash Storage (UFS) standard. The UFS standard was introduced as a successor to the eMMC (embedded MultiMediaCard) standard to offer higher performance and lower power consumption for mobile and other embedded devices. UFS provides support for a range of features such as multi-lane configurations, command queuing, and power-saving modes that enable high-speed data transfer rates, low latency, and long battery life. The UFS standard specifies many parameters for structuring, reading data from, and writing data to UFS-compliant memory devices. For example, UFS-compliant devices may include digital cameras, mobile phones, consumer electronic devices, and other devices with internal memory capacity. UFS-compliant memory may include memory embedded within electronic devices and removable memory cards, and UFS memory devices may implement NAND flash memory.

[0008] BRIEF SUMMARY OF SOME EXAMPLES

[0009] The following summarizes some aspects of the present disclosure to provide a basic understanding of the discussed technology. This summary is not an extensive overview of all contemplated features of the disclosure and is intended neither to identify key or critical elements of all aspects of the disclosure nor to delineate the scope of any or all aspects of the disclosure. Its sole purpose is to present some concepts of one or more aspects of the disclosure in summary form as a prelude to the more detailed description that is presented later.

[0010] Data stored in electronic memory may be used for securing an electronic device, securing content on the electronic device, or maintain user secrecy. For example, a memory may store information such as encryption keys, digital rights management (DRM) certificates authorizing access to certain copyrighted works, or the like. Protection of the data, such as these keys or certificates, is important to protect the user and / or the information. A replay protected memory block (RPMB) portion of a memory module may be used to store such information in a secure manner. Success of write requests to write information to a RPMB portion of a memory may be tracked using a bit in a result register associated with the RPMB. However, such success information may be inaccurate and may lead to false positives or negatives when requesting a success status of a write operation. For example, inaccurate success information in the result register may arise from overwriting of success information for a first write operation with success information from a second, subsequent, write operation that originated in error, from another source, such as from another virtual machine, or from a malicious source. That is, if a first write request is received and the requested write is successfully performed, the result register may be set to indicate that the first write request was a success. However, if a second write request originating in error, from another source, such as from another virtual machine, or from a malicious source is received before the success information for the first write operation is read from the result register, and the second write request fails, the register may be overwritten to indicate a failure of a write request. Then, if a host device reads the result register to obtain a status of the first write request, the host device may receive an indication of a failed write request, even though the first write request was a success. Similarly, if a first write request fails and a second write request, received before the success information for the first write request is read from the result register, is a success, the indication that the first write request failed may be overwritten in the result status register with an indication of success. Then, if a host device reads the result register to obtain a status of the first write request, the host device may receive a false positive and may interpret the false positive as indicating that the first write request was a success. Such false positives and negatives may result in false reads from the RPMB. For example, if a host device receives a false positive and interprets the false positive as indicating a write request was a success when, in fact, the write request was a failure, the host device may read information from the RPMB under the assumption that the contents of the RPMB were updated in accordance with the write request. Thus, based on reading a false positive from the result register, the host device may read stale data from the RPMB that was not updated in accordance with the failed write request.

[0011] Aspects of this disclosure provide techniques for storing result information for requests to write information to an RPMB portion of a memory in a table, rather than in a single register bit. For example, when a write request is received by a memory device to write information to an RPMB portion of the memory device, an indication of a success or failure of the write request may be stored in the table, associated with an indication of the write request, and when a request to read a result of the write request is received, the indication of the success or failure of the write request may be provided in response.

[0012] In one aspect of the disclosure, a memory device includes a memory controller coupled to a memory module through a channel and configured to access data stored in the memory module through the channel; and coupled to a host device through a memory interface and configured to communicate with the host device over the memory interface. The memory controller of the memory device may be configured to perform operations including receiving, from the host device through the memory interface, a first write request to write data to a replay protected memory block (RPMB) portion of the memory module, determining a result of the first write request, and storing an indication of the result of the first write request associated with an indication of the first write request in a table of the RPMB portion of the memory module. In another aspect of the disclosure, a method for performing these operations by a processor by executing instructions stored in a memory coupled to the processor is also disclosed. In an additional aspect of the disclosure, a non-transitory computer-readable medium stores instructions that, when executed by a processor, cause the processor to perform these operations.

[0013] In an additional aspect of the disclosure, an apparatus includes a memory controller of a host device configured to couple the host device to a memory system through a memory interface, the memory controller configured to perform operations including transmitting, to the memory system through the memory interface, a first write request to write data to a replay protected memory block (RPMB) portion of a memory module of the memory system, transmitting, to the memory system through the memory interface, a first read request to read a result of the first write request from a table of the RPMB portion of a memory module of the memory system, and receiving, from the memory system through the memory interface, an indication of the result of the first write request. In another aspect of the disclosure, a method for performing these operations by a processor by executing instructions stored in a memory coupled to the processor is also disclosed. In an additional aspect of the disclosure, a non-transitory computer-readable medium stores instructions that, when executed by a processor, cause the processor to perform these operations.

[0014] The foregoing has outlined rather broadly the features and technical advantages of examples according to the disclosure in order that the detailed description that follows may be better understood. Additional features and advantages will be described hereinafter. The conception and specific examples disclosed may be readily utilized as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. Such equivalent constructions do not depart from the scope of the appended claims. Characteristics of the concepts disclosed herein, both their organization and method of operation, together with associated advantages will be better understood from the following description when considered in connection with the accompanying figures. Each of the figures is provided for the purposes of illustration and description, and not as a definition of the limits of the claims.

[0015] While aspects and implementations are described in this application by illustration to some examples, those skilled in the art will understand that additional implementations and use cases may come about in many different arrangements and scenarios. Innovations described herein may be implemented across many differing platform types, devices, systems, shapes, sizes, packaging arrangements. For example, aspects and / or uses may come about via integrated chip implementations and other non-module-component based devices (e.g., end-user devices, vehicles, communication devices, computing devices, industrial equipment, retail / purchasing devices, medical devices, artificial intelligence (AI) -enabled devices, etc. ) . While some examples may or may not be specifically directed to use cases or applications, a wide assortment of applicability of described innovations may occur. Implementations may range in spectrum from chip-level or modular components to non-modular, non-chip-level implementations and further to aggregate, distributed, or original equipment manufacturer (OEM) devices or systems incorporating one or more aspects of the described innovations. In some practical settings, devices incorporating described aspects and features may also necessarily include additional components and features for implementation and practice of claimed and described aspects. For example, transmission and reception of wireless signals necessarily includes a number of components for analog and digital purposes (e.g., hardware components including antenna, radio frequency (RF) -chains, power amplifiers, modulators, buffer, processor (s) , interleaver, adders / summers, etc. ) . It is intended that innovations described herein may be practiced in a wide variety of devices, chip-level components, systems, distributed arrangements, end-user devices, etc. of varying sizes, shapes, and constitution.BRIEF DESCRIPTION OF THE DRAWINGS

[0016] A further understanding of the nature and advantages of the present disclosure may be realized by reference to the following drawings. In the appended figures, similar components or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If just the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.

[0017] Figure 1 is a block diagram illustrating a data processing system including a memory system in accordance with an embodiment of the present invention.

[0018] Figure 2 is a block diagram illustrating an example electronic device including the memory system according to one or more aspects of the disclosure.

[0019] Figure 3 is a block diagram illustrating components for facilitating access to a flash memory device from a host device according to some embodiments of the disclosure.

[0020] Figure 4 is a block diagram illustrating an electronic device with an encrypted channel to a storage device’s replay protected memory block (RPMB) according to one or more aspects of the disclosure.

[0021] Figure 5A is a block diagram illustrating an example flow of a write request and subsequent status check between a host and a memory device including an RPMB according to one or more aspects of the disclosure.

[0022] Figure 5B is a block diagram illustrating example flow of multiple write requests and a subsequent status check between a host and a memory device including an RPMB according to one or more aspects of the disclosure.

[0023] Figure 6A is a chart showing example contents of a security protocol in message format including a virtual machine (VM) identifier (ID) according to one or more aspects of the disclosure.

[0024] Figure 6B is a chart showing example contents of a RPMB message format including a virtual machine (VM) identifier (ID) according to one or more aspects of the disclosure.

[0025] Figure 7 is an example table for storage of indications of results of RPMB write requests associated with indications of the respective write requests according to one or more aspects of the disclosure.

[0026] Figure 8A is flow chart illustrating a method for table-based RPMB write request status tracking by a flash memory device according to one or more aspects of the disclosure.

[0027] Figure 8B is a flow chart illustrating a method for table-based RPMB write request status tracking by a host controller according to one or more aspects of the disclosure.

[0028] Figure 9 is a block diagram illustrating details of an example wireless communication system according to one or more aspects.

[0029] Like reference numbers and designations in the various drawings indicate like elements.DETAILED DESCRIPTION

[0030] The detailed description set forth below, in connection with the appended drawings, is intended as a description of various configurations and is not intended to limit the scope of the disclosure. Rather, the detailed description includes specific details for the purpose of providing a thorough understanding of the inventive subject matter. It will be apparent to those skilled in the art that these specific details are not required in every case and that, in some instances, well-known structures and components are shown in block diagram form for clarity of presentation.

[0031] The present disclosure provides systems, apparatus, methods, and computer-readable media that support data processing, including techniques for storing, retrieving, and organizing data in a memory system. In particular, aspects of this disclosure provide for table-based status tracking of write requests to protected portions of the memory system, such as a replay protected memory block (RPMB) portion of a memory module. For example, indications of success or failure of write requests may be stored in a table associated with indications of the respective write requests and may be provided, by the memory system, to a host device in response to a status request, received from the host device.

[0032] Particular implementations of the subject matter described in this disclosure may be implemented to realize one or more of the following potential advantages or benefits. In some aspects, the present disclosure provides techniques for improved reliability of RPMB write request statuses by storing a indications of write request statuses associated with respective write requests in a table. Such enhanced reliability may reduce the occurrence of false reads of data, where a host device reads old data from an RPMB of a memory system in accordance with receipt, from the memory system, of an indication that a failed write request was successful. Furthermore, use of such a table may allow for more reliable tracking of success and / or failure of write requests associated with particular virtual machines (VMs) in systems including multi-VM architecture.

[0033] Memory may be used in a computing system organized as illustrated in Figure 1. Figure 1 illustrates a data processing system 100, such as may be included in a mobile computing device, according to one or more aspects of the disclosure. A memory system 110 may couple to a host device 102 through one or more channels. For example, the host device 102 and memory system 110 may be coupled through a serial interface including a single channel for the transport of data or a parallel interface including two or more channels for the transport of data. In some aspects, control data may be transferred through the same channel (s) as the data or the control data may be transferred through additional channels. The host device 102 may be, for example, a portable electronic device such as a mobile phone, an MP3 player, a laptop computer, or a non-portable electronic device such as a desktop computer, a game player, a television (TV) , a media player, or a projector. As another example, the host device 102 may be an automotive computer system. In some examples, the memory system 110 may be included in the host device 102. Thus, the data processing system 100 may be any of the example host devices described herein including the memory system 110. Additional example host devices are illustrated and described with reference to Figure 6.

[0034] The memory system 110 may execute operations in response to commands (e.g., a request) from the host device 102. For example, the memory system 110 may store data provided by the host device 102 and the memory system 110 may also provide stored data to the host device 102. The memory system 110 may be used as a main memory, short-term memory, or long-term memory by the host device 102. As one example of main memory, the host device 102 may use the memory system 110 to supplement or replace a system memory by using the memory system 110 to store temporary data such as data relating to operating systems and / or threads executing in the operation system. As one example of short-term memory, the host device 102 may use the memory system 110 to store a page file for an operating system. As one example of long-term memory, the host device 102 may use the memory system 110 to store user files (e.g., documents, videos, pictures) and / or application files (e.g., word processing executable, gaming application) .

[0035] The memory system 110 may be implemented with any one of various storage devices, according to the protocol of a host interface for the one or more channels coupling the memory system 110 to the host device 102. The memory system 110 may be implemented with any one of various storage devices, such as a solid state drive (SSD) , a multimedia card (MMC) , an embedded MMC (eMMC) , a reduced size MMC (RS-MMC) , a micro-MMC, a secure digital (SD) card, a mini-SD, a micro-SD, a universal serial bus (USB) storage device, a universal flash storage (UFS) device, a compact flash (CF) card, a smart media (SM) card, or a memory stick.

[0036] The memory system 110 may include a memory module 150 and a controller 130 coupled to the memory module 150 through one or more channels. The memory module 150 may store and retrieve data in memory blocks 152, 154, and 156 under control of the controller 130, which may execute commands received from the host device 102. The controller 130 is configured to control data exchange between the memory module 150 and the host device 102. The storage components, such as blocks 152, 154, and 156 in the memory module 150 may be implemented as volatile memory device, such as, a dynamic random access memory (DRAM) and a static random access memory (SRAM) , or a non-volatile memory device, such as a read only memory (ROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a ferroelectric random access memory (FRAM) , a phase-change RAM (PRAM) , a magnetoresistive RAM (MRAM) , a resistive RAM (SCRAM) , or a NAND flash memory.

[0037] The controller 130 and the memory module 150 may be formed as integrated circuits on one or more semiconductor dies (or other substrate) . In some aspects, the controller 130 and the memory module 150 may be integrated into one chip. In some aspects, the memory module 150 may include one or more chips coupled in series or parallel with each other and coupled to the controller 130, which is on a separate chip. In some aspects, the memory module 150 and controller 130 chips are integrated in a single package, such as in a package on package (PoP) system. In some aspects, the memory system 110 is integrated on a single chip with one or more or all of the components (e.g., application processor, system memory, digital signal processor, modem, graphics processor unit, memory interface, input / output interface, network adaptor) of the host device 102, such as in a system on chip (SoC) . The controller 130 and the memory module 150 may be integrated into one semiconductor device to form a memory card, such as, for example, a Personal Computer Memory Card International Association (PCMCIA) card, a compact flash (CF) card, a smart media card (SMC) , a memory stick, a multimedia card (MMC) , an RS-MMC, a micro-MMC, a secure digital (SD) card, a mini-SD, a micro-SD, an SDHC, and a universal flash storage (UFS) device.

[0038] The controller 130 of the memory system 110 may control the memory module 150 in response to commands from the host device 102. The controller 130 may execute read commands to provide the data from the memory module 150 to the host device 102. The controller 130 may execute write commands to store data provided from the host device 102 into the memory module 150. The controller 130 may execute other commands to manage data in the memory module 150, such as program and erase commands. The controller 130 may also execute other commands to manage control of the memory system 110, such as setting configuration registers of the memory system 110. By executing commands in accordance with the configuration specified in the configuration registers, the controller 130 may control operations of the memory module 150, such as read, write, program, and erase operations.

[0039] The controller 130 may include several components configured for performing the received commands. For example, the controller 130 may include a host interface (I / F) unit 132, a processor 134, an error correction code (ECC) unit 138, a power management unit (PMU) 140, a NAND flash controller (NFC) 142, and / or a memory 144. The power management unit (PMU) 140 may provide and manage power for components within the controller 130 and / or the memory module 150.

[0040] The host interface unit 132 may process commands and data provided from the host device 102, and may communicate with the host device 102, through at least one of various interface protocols such as universal serial bus (USB) , multimedia card (MMC) , peripheral component interconnect express (PCI-e) , serial attached SCSI (SAS) , serial advanced technology attachment (SATA) , parallel advanced technology attachment (PATA) , small computer system interface (SCSI) , enhanced small disk interface (ESDI) , and integrated drive electronics (IDE) . For example, the host interface 132 may be a parallel interface such as an MMC interface, or a serial interface such as an ultra-high speed class 1 (UHS-I)  / UHS class 2 (UHS-II) or a universal flash storage (UFS) interface.

[0041] The ECC unit 138 may detect and correct errors in the data read from the memory module 150 during the read operation. The ECC unit 138 may not correct error bits when the number of the error bits is greater than a threshold number of correctable error bits, which may result in the ECC unit 138 outputting an error correction fail signal indicating failure in correcting the error bits. In some aspects, no ECC unit 138 may be provided or the ECC unit 138 may be configurable to be active for some or all of the memory module 150. The ECC unit 138 may perform an error correction operation using a coded modulation such as a low-density parity check (LDPC) code, a Bose-Chaudhuri-Hocquenghem (BCH) code, a turbo code, a Reed-Solomon (RS) code, a convolution code, a recursive systematic code (RSC) , a trellis-coded modulation (TCM) , or a Block coded modulation (BCM) .

[0042] The NFC 142 provides an interface between the controller 130 and the memory module 150 to allow the controller 130 to control the memory module 150 in response to a commands received from the host device 102. The NFC 142 may generate control signals for the memory module 150, such as signals for rowlines and bitlines, and process data under the control of the processor 134. Although NFC 142 is described as a NAND flash controller, other controllers may perform similar function for other memory types used as memory module 150.

[0043] The memory 144 may serve as a working memory of the memory system 110 and the controller 130. The memory 144 may store data for driving the memory system 110 and the controller 130. When the controller 130 controls an operation of the memory module 150 such as, for example, a read, write, program or erase operation, the memory 144 may store data which are used by the controller 130 and the memory module 150 for the operation. The memory 144 may be implemented with a volatile memory such as, for example, a static random access memory (SRAM) or a dynamic random access memory (DRAM) . In some aspects, the memory 144 may store address mappings, a program memory, a data memory, a write buffer, a read buffer, a map buffer, and the like.

[0044] The processor 134 may control the general operations of the memory system 110, and a write operation or a read operation for the memory module 150, in response to a write request or a read request received from the host device 102, respectively. For example, the processor 134 may execute firmware, which may be referred to as a flash translation layer (FTL) , to control the general operations of the memory system 110. The processor 134 may be implemented, for example, with a microprocessor or a central processing unit (CPU) , or an application-specific integrated circuit (ASIC) .

[0045] FIG. 2 is a block diagram illustrating an example electronic device including the memory system 100 according to one or more aspects of the disclosure. The electronic device 200 may include a user interface 210, a memory 220, an application processor 230, a network adaptor 240, and a storage system 250 (which may be one embodiment of the memory system 100 of FIG. 1) . The application processor 230 may be coupled to the other components through a bus, such as a peripheral component interface (PCI) bus, including a PCI express (PCIe) bus.

[0046] The application processor 230 may execute computer program code, including applications, drivers, and operating systems, to coordinate performing of tasks by components included in the electronic device 200. For example, the application processor 230 may execute a storage driver for accessing the storage system 250. The application processor 230 may be part of a system-on-chip (SoC) that includes one or more other components shown in electronic device 200.

[0047] The memory 220 may operate as a main memory, a working memory, a buffer memory or a cache memory of the electronic device 200. The memory 220 may include a volatile random access memory such as a dynamic random access memory (DRAM) , a synchronous dynamic random access memory (SDRAM) , a double data rate (DDR) SDRAM, a DDR2 SDRAM, a DDR3 SDRAM, a low power double data rate (LPDDR) SDRAM, an LPDDR2 SDRAM, an LPDDR3 SDRAM, an LPDDR4 SDRAM, an LPDDR5 SDRAM, or an LPDDR6 SDRAM, or a nonvolatile random access memory such as a phase change random access memory (PRAM) , a resistive random access memory (ReRAM) , a magnetic random access memory (MRAM) and a ferroelectric random access memory (FRAM) . In some aspects, the application processor 230 and the memory 220 may be combined using a package-on-package (POP) .

[0048] The network adaptor 240 may communicate with external devices. For example, the network adaptor 240 may support wired communications and / or various wireless communications such as code division multiple access (CDMA) , global system for mobile communication (GSM) , wideband CDMA (WCDMA) , CDMA-2000, time division multiple access (TDMA) , long term evolution (LTE) , worldwide interoperability for microwave access (WiMAX) , wireless local area network (WLAN) , ultra-wideband (UWB) , Bluetooth, wireless display (Wi-Di) , and so on, and may thereby communicate with wired and / or wireless electronic appliances, for example, a mobile electronic appliance.

[0049] The storage system 250 may store data, for example, data received from the application processor 230, and transmit data stored therein, to the application processor 230. The storage system 250 may be a non-volatile semiconductor memory device, such as a phase-change RAM (PRAM) , a magnetic RAM (MRAM) , a resistive RAM (ReRAM) , a NAND flash memory, a NOR flash memory, or a 3-dimensional (3-D) NAND flash memory. The storage system 250 may be a removable storage medium, such as a memory card or an external drive. For example, the storage system 250 may correspond to the memory system 110 described above with reference to FIG. 1 and may be a SSD, eMMC, UFS, or other flash memory system.

[0050] The user interface 210 provide one or more graphical user interfaces (GUIs) for inputting data or commands to the application processor 230 or for outputting data to an external device. For example, the user interface 210 may include user input interfaces, such as a virtual keyboard, a touch screen, a camera, a microphone, a gyroscope sensor, or a vibration sensor, and user output interfaces, such as a liquid crystal display (LCD) , an organic light emitting diode (OLED) display device, an active matrix OLED (AMOLED) display device, a light emitting diode (LED) , a speaker, or a haptic motor.

[0051] FIG. 3 is a block diagram illustrating components for facilitating access to a flash memory system from a host device according to some embodiments of the disclosure. The host device 102 accesses the memory system 110 through a first interface 310. The first interface may, for example, be a memory interface such as a physical interface (PHY) connecting the host device 102 to the memory system 110. The host device 102 may include physical layer access block 312, which is configured to generate signals for output to the memory interface 310 and process signals received through the memory interface 310. The memory system 110 includes a similarly-configured physical layer access block 322 for communicating on the memory interface 310. One example physical layer specification for communicating on the memory interface 310 is the MIPI M-PHYTM physical layer specification.

[0052] The host device 102 also includes a data link layer block 314 configured to format frames of data for transmission on the memory interface 310. The frames may be provided to the physical layer access block 312 for transmission. The data link layer block 314 may receive frames from the physical layer access block 312 and decode frames of data received on the memory interface 310. The memory system 110 includes a similarly-configured data link layer block 324 for processing frames transmitted on or received on the memory interface 310 by the physical layer access block 322. One example data link protocol for communicating on a MIPI M-PHYTM physical link is the MIPI UNIPROTM specification.

[0053] The memory system 110 includes N logical units 350a-n comprising logical memory blocks for storing information including user data (e.g., user documents, application data) and configuration data (e.g., information regarding operation of the memory system 110) . The logical units 350a-n may map to portions of the physical memory blocks 152, 154, and 156. Some of the logical units 350a-n or portions of the logical units 350a-n may be configured with write protection, with boot capability, as a specific memory type (e.g., default, system code, non-persistent, enhanced) , with priority access, or with replay protection as a replay protected memory block (RPMB) . The physical layer access block 322 and the data link layer block 324 perform operations of a memory controller for the memory system 110 for storing and retrieving data in logical units 350a-n.

[0054] The memory system 110 also includes configuration structures 352. The configuration structures 352 may include information such as configuration descriptors for boot enable (bBootEnable) , initial power mode (bInitPowerMode) , RPMB active (bRPMBRegionEnable) , and / or RPMB region sizes (bRPMBRegion1Size, bRPMBRegion2Size, bRPMBRegion3Size) . Such configuration structures and / or parameters may, for example, be configuration structures and / or parameters identified by the UFS standard.

[0055] The host device 102 may be configured to execute one or more applications 334, such as user applications executed by an operating system under the control of a user to receive user input and provide information stored in the memory system 110 to the user. The host device 102 may include several components for interfacing the application 334 to the memory system 110 through the memory interface 310. For example, a SCSI driver 332 and a UFS driver 330 may interface the application 334 to a host memory controller that includes the data link layer block 314 and the physical layer access block 312. The SCSI driver 332 may execute at an application layer for handling transactions requested by the application 334 with the memory system 110. The UFS driver 330 may execute at a transport layer and manage operation of the data link layer block 314, such as to operate the memory interface 310 at one of a plurality of modes of operations. The modes of operations may include two or more gear settings, such as one or more PWM-GEAR settings and four or more HS-GEAR settings specifying one bitrate from 182 MBps, 364 MBps, 728 MBps, and 1457 MBps.

[0056] The memory interface 310 may include one or more lines including a reset RST line, a reference clock REF_CLK line, a data-in DIN line (for data transmissions from the host device 102 to the memory system 110) , and a data-out DOUT line (for data transmissions from the memory system 110 to the host device 102) . The DIN and DOUT lines may be two separate conductors, or the DIN and DOUT lines may include multiple conductors. In some embodiments, the DIN and DOUT lines may be asymmetric with the DIN line including N conductors and the DOUT line including M conductors, with N > M or M >N.

[0057] The UFS driver 330 may generate and decode packets to carry out transactions requested by the application 334. The packets are transmitted over the memory interface 310. The packets may be formatted as UFS Protocol Information Units (UPIUs) . In a transaction with the memory system 110, the host device 102 is an initiator and the memory system 110 is a target. The UFS driver 330, based on the type of transaction, may form one of several types of UPIUs for handling SCSI commands, data operations, task management operations, and / or query operations. Each transaction may include one command UPIU, zero or more DATA IN or DATA OUT UPIUs, and a response UPIU. Each UPIU may include a header followed by optional fields depending on the type of UPIU.

[0058] One example transaction is a read operation. A read transaction may include the initiator (e.g., host device 102) transmitting a command UPIU for causing the target (e.g., memory system 110) to perform a read operation requested by the application 334. The target provides one or more DATA IN UPIUs in response to the command UPIU, in which the DATA IN UPIUs include the requested data. The read transaction is completed by the target transmitting a Response UPIU.

[0059] Another example transaction is a write operation. A write operation may include the initiator (e.g., host device 102) transmitting a command UPIU for causing the target (e.g., memory system 110) to perform a write operation requested by the application 334. The target provides a Ready to Transfer UPIU signaling the initiator to begin transfer of write data. The initiator then transmits one or more DATA OUT UPIUs, which are followed by a Ready to Transfer UPIU signaling the initiator to continue transfer of the write data. The sequence of DATA OUT UPIUs and Ready to Transfer UPIU continues until all write data is provided to the target, after which the target provides a Response UPIU to the initiator.

[0060] A further example transaction is a query operation. A query operation may include the initiator (e.g., host device 102) requesting information about the target (e.g., memory system 110) . The initiator may transmit a Query Request UPIU to request information such as configuration, enumeration, device descriptor, flags, and / or attributes of the target. Example query operations includes read descriptor, write descriptor, read attribute, write attribute, read flag, set flag, clear flag, and / or toggle flag. Example descriptors include device, configuration, unit, interconnect, string, geometry, power, and / or device health. Example flags include fDeviceInit, fPermanenetWPEn, fPowerOnWPEn, fBackgroundOpsEn, fDeviceLifeSpanModeEn, fPurgeEnable, fRefreshEnable, fPhyResourceRemoval, fBusyRTC, and / or fPermanentlyDisableFwUpdate. Example attributes include bBootLunEn, bCurrentPowerMode, bActiveICCLevel, bOutOfORderDataEn, bBackgroundOpStatus, bPurgeStatus, bMaxDataInSize, bMaxDataOutSize, dDynCapNeeded, bRefClkFreq. Such flags may, for example, be flags identified by the UFS standard.

[0061] The operations and capabilities described above may be used for a memory system that supports storage of RPMB write request statuses associated with respective write requests in a table. In particular, when a RPMB write request is received by a memory device and is either performed successfully or fails, and indication of whether the request was a success or failure may be stored, associated with an indication of the write request, in a table, such as a table stored in the RPMB.

[0062] One electronic device with encryption protecting a memory interface is shown in Figure 4. Figure 4 is a block diagram illustrating an electronic device with an encrypted channel to a storage device according to one or more aspects of the disclosure. A host device 400 may include software 410 executing on hardware 420. The software 410 may include applications 412 executing in a host operating system and / or one or more virtual machines 414, 416. The software 410 may execute on application processor cores 422. The application processor cores 422 may be coupled to a memory controller 424 that provides an interface between the application processor cores 422 and a memory system 430 over one or more channels 442, such as one or more data channels. For example, channels 442 may be channels of a memory interface between the host device 400 and the memory system. The one or more channels 442 may, for example, be physical channels. The memory controller 424 may also provide an interface to the memory system 430 for the virtual machines 414 and 416. In some embodiments, a memory controller 424 may be located in the host device 400 and another memory controller 436 may be located in the memory system 430. The memory controller 436 of the memory system 430 may communicate with a memory controller 424 of the host device 400 over one or more channels 442 of a memory interface. The memory controller 436 of the memory system 430 may communicate with one or more modules of the memory system 430, such as an RPMB 432 of the memory system 430, via one or more channels, such as one or more data channels.

[0063] In some embodiments, the interface between the memory controller and the memory device may be a universal flash storage (UFS) interface, with the memory controller 424 being a UFS memory controller and the memory system 430 being a UFS memory device 430. In some embodiments, the host device 400 and the memory system 430 may be integrated in a single package as two different integrated circuits using a multi-chip packaging technique. In some embodiments, the host device 400 and the memory system 430 may be a single integrated circuit with the host device 400 and the memory system 430 contained on a single semiconductor die. Although UFS example embodiments may be described herein, aspects of this disclosure may be applied to other memory systems, including any of the memory systems described with reference to Figure 1.

[0064] The memory system 430 may include a controller 436 for interfacing over the channel 442, such as a channel of a memory interface, with the memory controller 424. In some embodiments, the controller 436 may communicate with the host device 400 via an interface. The memory system 430 may also include a Replay Protected Memory Block (RPMB) portion 432 of a memory module configured to store secure application data that provides replay protection. For example, RPMB portion 432 may protect data written in certain regions from being overwritten (such as through a Write Protect Until Power Cycle or Permanent Write Protect status) . RPMB portion 432 may be used by software to reduce or prevent a downgrade attack that overwrites a software version authentication or may be used by software for secure boot that prevents undesired code from running on a device.

[0065] The RPMB portion 432 may include one or more defined regions 434A-D. The regions 434A-D may be a portion of one of the memory blocks 152, 154, 156 of Figure 1 or may be one of the memory blocks 152, 154, 156 dedicated to RPMB. The regions 434A-D may be assigned to different clients to store data specific to that client and protected from read or write by other clients. For example, a first application may store first data in region 434A, a second application may store second data in region 434B, and the virtual machine 414 may store third data in region 434C. The first application may be prevented by the memory system 430 from accessing data stored in the regions 434B and 434C. The regions 434A-D may be used by the software 410 and / or the virtual machines 414 and 416 to store information relating to digital rights management (DRM) (e.g., keys for accessing protected media content in a media player application) , biometric data (e.g., fingerprints, face authentication data, iris authentication data) , a secure file system key, a user identifier, a password, and / or software roll-back versions (e.g., anti-rollback versions of trusted applications) .

[0066] Each of the RPMB regions 434A-D may have corresponding information stored in the memory system 430. For example, the memory system 430 may separately track a write counter for each RPMB region 434A-D indicating a total amount of successful authenticated data write operations. The write counter may allow an application that owns one of the RPMB regions to identify if a malicious process or inadvertent operation has overwritten data in the RPMB regions. As another example of information corresponding to the RPMB regions, the memory system 430 may separately store an authentication key for each RPMB region 434A-D. The authentication key may be provisioned by a client (e.g., an application or a virtual machine) by providing a seed key to the memory system 430 from which an authentication key is derived by a confidential hash algorithm.

[0067] A cryptography engine 432A may be included in the RPMB portion 432 or elsewhere in the memory system 430 to facilitate authentication operations regarding read or write operations to the RPMB regions 434A-D. For example, the cryptography engine 432A may include a key memory space for storing the authorization keys. They key memory space may be sized or allocated from a shared memory. As another example, the cryptography engine 432A may also include logic circuitry for determining a hash value based on certain inputs. The logic circuitry for determining the hash value may be configured to calculate hash values based on inputs from a host device 400 (such as first information received in a RPMB read request message from the host device 300) or a memory in the memory system 430 (such as second information stored or determined by the memory system 430 about the RPMB regions 434A-D) . Logic within the cryptography engine 432A or the memory controller 436 may be configured to determine whether access to one of the regions 434A-D is authorized.

[0068] In one embodiment for accessing the RPMB regions 434A-D, the memory controller 424 may transmit an authenticated data read request message. The read request message may share a common message structure as a response message also transmitted over the channel 442. Different portions of the message may be empty, zero, or some other null value when a field is not applicable to a request or response. Similarly, the memory controller 424 may transmit an authenticated data write request message, which may share a common structure as a response message also transmitted over the channel 442.

[0069] Success of RPMB write request messages may be tracked using a RPMB result register bit. Figure 5A is a block diagram 500 illustrating an example flow of a write request 510 and subsequent status check between a host 502 and a memory device 506 including an RPMB according to one or more aspects of the disclosure. As shown in Figure 5A, a host device 502, which may be a host device similar to the host device 400 of Figure 4 may be connected to a memory device 506. In some embodiments, the host device 502 may include the memory device 506. For example, the memory device 506 may be integrated in the host device 502. The memory device 506 may be similar to the memory system 430 of Figure 4. The memory device 506 may be or may include an RPMB for securely storing data, as discussed herein. The host device 502 may include a host controller interface 504 for communicating with the memory device 506. In some embodiments, the host controller interface 504 may facilitate communication between a memory controller of the host 502 and the memory device 506. In some embodiments, the host device 502 may execute an operating system, such as described with respect to the host device 400 of Figure 4. The host device 502 and the memory device 506 may be configured to operate according to the UFS standard, as described herein.

[0070] The host device 502 may write information to the memory device 506, such as to an RPMB of the memory device 506, by transmitting a write request 510 to the memory 506, such as an RPMB write request. The write request may, for example, be or include an RPMB message data frame, as discussed herein. As one particular example, the write request 510 may be an authenticated write request and may include a security protocol out (SPO) message. In some embodiments, the write request 510 may include an SPO message at a UFS command set (UCS) layer and a command UFS protocol information unit (UPIU) message at a UFS transport (UTP) layer. The memory device 506 may receive the write request 510. If the write request 510 is successful, data associated with the write request 510 is written to the memory device 506, such as to an RPMB of the memory device 506. A write request 510 may, for example, be successful if address and media access control (MAC) authentication of the write request 510 at the memory device 506 is successful. If the write request 510 is a failure, data associated with the write request 510 is not written to the memory device 506, such as to the RPMB of the memory device 506. A write request 510 may fail if address and MAC authentication of the write request 510 fails. A result register bit of an RPMB of the memory device 506 may be updated based on whether or not the write request 510 is successful. For example, in the case of write request 510, the request may be successful and the result register bit 508 may be set to a value of 1. If the write request 510 is not successful, the result register 508 may be set to a value of 0.

[0071] In order to determine if the write request 510 was successful, the host device 503 may subsequently transmit a status request 512 to get a status of the result register 508. The status request 512 may, for example, include an SPO message at a UCS layer and a command UPIU message at a UTP layer. In some embodiments, the status request 512 may include an SPO message of type result read request. The host device 502 may subsequently transmit a read results request 514 to read the information stored in the result register 508. The read results request 514 may be or may include an RPMB message data frame. The read results message 514 may, for example, include a security protocol in (SPI) message at the UCS layer and a command UPIU message at the UTP layer. The memory device 506 may, in response, transmit to the host device 502 a response 516, such as an RPMB result read response message, including an indication of the information stored in the result register 508. The response 516 may, for example, be or include an RPMB message data frame. The host device 502 may determine whether the write request 510 was successful or not based on the response 516. In some embodiments, the status request 512, the read results request 514, and the response 516 may be performed as part of an authenticated data write verification process by the host device 502.

[0072] However, use of a single common status register to track a success of write request messages may render a system vulnerable to returning false positives or false negatives. For example, if a subsequent write request is sent to the memory device 506 after transmission and reception of a first write request and prior to reading a result of the register 508, the register 508 may be updated to reflect a result of the subsequent write request. As one particular example, under the UFS standard any request received by an RPMB other than a result read request from any initiator will overwrite a current value of the result status register 508. Figure 5B is a block diagram 550 example flow of multiple write requests 552, 554 and a subsequent status check between a host 502 and a memory device 506 including an RPMB according to one or more aspects of the disclosure. As shown in Figure 5B, a write request 552 may be transmitted by the host device 502, received by the memory 506, and successfully implemented, and a result status register 508 may be updated accordingly. However, if a subsequent write request 554, such as a write request from an attacker or resulting from a software error, is received by the memory device 506 before a read results request 558 is transmitted by the host device 502 and received by the memory device 506, a value of the result register 508 may be updated to reflect a status of the subsequent write request 554. For example, if the subsequent write request 554 fails, such as due to a failure of address and / or MAC authentication, the result register 508 may be updated to reflect that a write request failed. Then, when the host device 502 transmits a status request 556 to get a status of the result register 508 and a read results request 558 to read the result register 508, a value indicating write request failure may be returned to the host device 502 from the memory device 506 in response 560. Thus, the host device 502 may think the write request 552 failed when, in fact, the write request 552 was a success while the subsequent write request 554 failed. Similarly, a first write request may fail, resulting in setting of the status register 508 to indicate a failure, and a subsequent write request may succeed, resulting in overwriting the status register 508 to indicate a success. Such a scenario may result in a false positive when a host device 502 requests to read the result register 508 from the memory device 506. False positives may, for example, result in reading old or stale data from a portion of the RPMB, as the host device 502 may think that the data was updated based on a previous write request in accordance with a false positive read from the result status register 508.

[0073] In some embodiments, such as described with respect to the host device 400 of Figure 4, multiple VMs may be executed by a host device and may store information in partitions of an RPMB of the memory 506. Thus, for example, different write requests originating from different virtual machines of a host device 502 may result in overwriting of the register 508 upon success or failure, and the host device may not be able to track a status of a specific write request associated with a specific virtual machine. For example, the first write request 552 discussed above may be a write request from a first VM of the host device 502 and the subsequent write request 554 may be a write request from a second VM of the host device 502.

[0074] Use of a table, in place of or in addition to a result status register, to store statuses of RPMB write requests received by memory device 506 may reduce the occurrence of false positives or false negatives. For example, when the memory device 506 of Figure 5A receives a write request 510 from the host device 502, the memory device 506 may store an indicator of whether the request was successful or a failure in a table of the memory device 506. The indication of the status of the write request may be associated with an indication of write request 510 in the table. For example, the write request 510 may be or may include an RPMB write request message according to RPMB message format 650 of Figure 6B. In some embodiments, RPMB message format 650 may include, at block 652, a VM identifier (ID) of a VM associated with the write request, such as a VM that originated the write request. In some embodiments, another identifier, such as an identifier unique to the RPMB message of RPMB message format 650 may be included at block 652. The block 652 for storage of the identifier may, for example, be a 500th byte of a RPMB message data frame according to the UFS standard, currently allocated for storage of a nonce, or another byte or set of bits of the RPMB message data frame structure. Such a byte may be re-allocated for storage of a write request identifier. In some embodiments, all or a portion of the nonce stored at the 485th byte to the 499th or 500th byte of the RPMB message format 650 may be used as the write request identifier in place of or in addition to the VM ID. A VM ID, or other identifier unique to and included in the write request 510, may be associated with an indicator of a status of the write request 510 in a table. In some embodiments, such a table may be stored in an RPMB of the memory device 506. In some embodiments, the table may be updated to include only indications of write requests that are successful.

[0075] An example table 700 for storage of RPMB write request results is shown in Figure 7. As shown in Figure 7, the table may include multiple entries 702, 704, each entry associated with a particular write request. For example, each entry 702, 704 may include a VM ID associated with a write request, or another identifier of the write request, and a result code indicating a result of the write request. For example, the result code may include a 1 for a successful write request and a 0 for a failed write request. As additional write requests are received and succeed or fail, additional entries may be added to the table 700. In some embodiments, only indications of successful write requests may be stored in the table 700. In some embodiments, the table 700 may be a hash table, with a hash key being set to a VM ID associated with a write request or other identifier associated with a write request. In some embodiments, an entry may be added to the table 700 after every write request, before a response UPIU to the write request is transmitted from the memory device 506 to the host device 502. When the host device transmits a read results request 514, the read results request 514 may include an indication of the write request to which the read results request corresponds. For example, the read results request 514 may include an SPI command message according to the format 600 of Figure 6A. In block 602, the SPI command message may include an indication of a VM ID of a VM associated with the write request for which results information is being requested or another identifier of the write request message for which results are being requested. The block 602 for storage of the identifier may, for example, be a 6th byte of a SPI command format 600 according to the UFS standard, currently allocated as reserved, or another byte or set of bits of the SPI command format 600. Such a byte may be re-allocated for storage of a write request identifier. The memory device 506 may compare the indication of the write request included in the read results request 514 with indications of particular write requests stored in a table associated with corresponding results information and may return results information corresponding to the indication of the write request. For example, if the read results request 514 includes an indication of a particular VM ID, the memory device 506 may search a table, such as table 700, for the VM ID and may return results information corresponding to the VM ID in a response 516. In particular, the memory device 506 may use the VM ID as a hash key input to search the table 700. The response 516 may include an RPMB message data frame of format 650 and may include the results information in a result block of the RPMB message data frame of format 650. Thus, even if subsequent write requests are received before a result read request is transmitted for a particular write request, result information for the particular write request may be retrieved from a table including one or more indications of write requests associated with respective results information.

[0076] FIG. 8A is flow chart illustrating a method for table-based RPMB write status request tracking by a flash memory system according to some embodiments of the disclosure. The flash memory system may, for example, be configured according to the UFS standard and may include an RPMB portion of a memory module of the memory system. A memory controller of the memory system may be coupled to the memory module through a channel and configured to access data stored in the memory module through the channel. The memory controller may be coupled to a host device through a memory interface and configured to communicate with the host device over the memory interface. The memory controller may be further configured to perform the operations of the method 800. A method 800 includes, at block 802, receiving, from a host device, a first write request to write data to an RPMB portion of a memory module. The first write request may, for example, be or include an RPMB message data frame. In some embodiments, the first write request may be or include an SPO command message. In some embodiments, the write request may be a priority write request, such as a priority write request according to the UFS standard.

[0077] At block 804, the memory controller may determine a result of the first write request. For example , the memory controller may determine whether a result of the first write request is success or failure. Such determination may, for example, include performing address and MAC authentication on the write request. If the address and MAC authentication are successful, the information of the write request may be written to the RPMB, and the write request may be a success. If the address and MAC authentication are not successful, the information of the write request may not be written to the RPMB, and the write request may be a failure.

[0078] At block 806, the memory controller may store an indication of the result of the first write request associated with an indication of the first write request in a table of the RPMB portion of the memory module. For example, such a table may include multiple respective indications of results of write requests associated with indications of respective write requests. In some embodiments the indication of the first write request may include an indication of a VM ID included in the first write request.

[0079] In some embodiments, the memory controller may subsequently receive a first read request to read a result of the first write request. The first read request may, for example, include an SPI message. In some embodiments, the first read request may include an indication of the first write request, such as an indication of a VM ID included in the first write request. The memory controller may transmit, to the host device, an indication of the result of the first write request based on the stored indication of the result of the first write request associated with the indication of the first write request. For example, the memory controller may use an indication of the first write request included in the read request to search the table of associated write request indications and write request status indications for a write request status indication corresponding to a write request indication, such as a VM ID, included in the read request.

[0080] If subsequent write requests are received indications of the results of the subsequent write requests associated with indications of the subsequent write requests may be stored in the table. Thus, instead of a single result register bit that is overwritten with each successive request, a table of multiple results of write requests may be maintained. For example, the memory controller may receive a second write request to write data to the RPMB portion of the memory module and may determine that a result of the second write request was a failure. The memory controller may store an indication of the result of the second write request associated with an indication of the second write request in the table of the RPMB portion of the memory module. The second write request may, for example, be received before a read request to read a result of the first write request. Then, even though the second write request was received before the read request, the memory controller may transmit an indication of a result of the first write request to the host device in response to the read request using the information stored in the table.

[0081] FIG. 8B is a flow chart illustrating a method for table-based RPMB write status request tracking by a host controller according to some embodiments of the disclosure. For example, a memory controller of a host device may be configured to couple the host device to a memory system through a memory interface. In some embodiments, the memory system may be configured to operate according to the UFS specification. The memory controller may be further configured to perform the method 820. The method 820 includes, at block 822, transmitting, by the memory controller of the host device, a first write request to write data to an RPMB portion of a memory module of a memory system. The first write request may, for example, be or include an RPMB message data frame. In some embodiments, the first write request may be or include an SPO command message. In some embodiments, the first write request may be a priority write request, such as a priority write request according to the UFS standard. In some embodiments, the first write request may include an indication of a VM ID, such as a VM ID of a VM associated with the first write request. The VM ID may, for example, be a VM ID of a VM that initiated the first write request.

[0082] At block 824, the memory controller of the host device may transmit a first read request to read a result of the first write request from a table of the RPMB portion of the memory module of the memory system. The table may, for example, be stored in the RPMB portion of the memory module. The table may, for example, include a plurality of indications of results of respective write requests associated with respective indications of the respective write requests. As one example, the table may include a plurality of indications of results of respective write requests associated with VM IDs associated with the respective write requests. The first read request may, for example, include an indication of the first write request such as an indication of a VM ID that was included in and / or associated with the first write request. The indication of the first write request may be used, by the memory system, to select an indication of the result of the first write request from the table, such as by searching the table for an indication of a result associated with the indication of the first write request.

[0083] At block 826, the memory controller of the host device may receive an indication of the result of the first write request. The indication of the result of the first write request may include an indication of whether the first write request was a success or a failure. The memory controller of the host device may used the received status in performing subsequent reads of the information written according to the first write request ot the RPMB portion of the memory module. Thus, reliability of write request status responses may be enhanced through use of a table to store write request result indications associated with write request indications.

[0084] Operations of method 800 or method 820 may be performed by a UE, such as a UE described with reference to FIG. 9. For example, example operations (also referred to as “blocks” ) of method 800 or method 820 may enable UE 915 to support greater user data confidentiality. FIG. 9 is a block diagram illustrating details of an example wireless communication system according to one or more aspects. The wireless communication system may include wireless network 900. Wireless network 900 may, for example, include a 5G wireless network. As appreciated by those skilled in the art, components appearing in FIG. 9 are likely to have related counterparts in other network arrangements including, for example, cellular-style network arrangements and non-cellular-style-network arrangements (e.g., device to device or peer to peer or ad hoc network arrangements, etc. ) .

[0085] Wireless network 900 illustrated in FIG. 9 includes a number of base stations 905 and other network entities. A base station may be a station that communicates with the UEs and may also be referred to as an evolved node B (eNB) , a next generation eNB (gNB) , an access point, and the like. Each base station 905 may provide communication coverage for a particular geographic area. In 3GPP, the term “cell” may refer to this particular geographic coverage area of a base station or a base station subsystem serving the coverage area, depending on the context in which the term is used. In implementations of wireless network 900 herein, base stations 905 may be associated with a same operator or different operators (e.g., wireless network 900 may include a plurality of operator wireless networks) . Additionally, in implementations of wireless network 900 herein, base station 905 may provide wireless communications using one or more of the same frequencies (e.g., one or more frequency bands in licensed spectrum, unlicensed spectrum, or a combination thereof) as a neighboring cell. In some examples, an individual base station 905 or UE 915 may be operated by more than one network operating entity. In some other examples, each base station 905 and UE 915 may be operated by a single network operating entity.

[0086] A base station may provide communication coverage for a macro cell or a small cell, such as a pico cell or a femto cell, or other types of cell. A macro cell generally covers a relatively large geographic area (e.g., several kilometers in radius) and may allow unrestricted access by UEs with service subscriptions with the network provider. A small cell, such as a pico cell, would generally cover a relatively smaller geographic area and may allow unrestricted access by UEs with service subscriptions with the network provider. A small cell, such as a femto cell, would also generally cover a relatively small geographic area (e.g., a home) and, in addition to unrestricted access, may also provide restricted access by UEs having an association with the femto cell (e.g., UEs in a closed subscriber group (CSG) , UEs for users in the home, and the like) . A base station for a macro cell may be referred to as a macro base station. A base station for a small cell may be referred to as a small cell base station, a pico base station, a femto base station or a home base station. In the example shown in FIG. 9, base stations 905d and 905e are regular macro base stations, while base stations 905a-905c are macro base stations enabled with one of 3 dimension (3D) , full dimension (FD) , or massive MIMO. Base stations 905a-905c take advantage of their higher dimension MIMO capabilities to exploit 3D beamforming in both elevation and azimuth beamforming to increase coverage and capacity. Base station 905f is a small cell base station which may be a home node or portable access point. A base station may support one or multiple (e.g., two, three, four, and the like) cells.

[0087] Wireless network 900 may support synchronous or asynchronous operation. For synchronous operation, the base stations may have similar frame timing, and transmissions from different base stations may be approximately aligned in time. For asynchronous operation, the base stations may have different frame timing, and transmissions from different base stations may not be aligned in time. In some scenarios, networks may be enabled or configured to handle dynamic switching between synchronous or asynchronous operations.

[0088] UEs 915 are dispersed throughout the wireless network 900, and each UE may be stationary or mobile. It should be appreciated that, although a mobile apparatus is commonly referred to as a UE in standards and specifications promulgated by the 3GPP, such apparatus may additionally or otherwise be referred to by those skilled in the art as a mobile station (MS) , a subscriber station, a mobile unit, a subscriber unit, a wireless unit, a remote unit, a mobile device, a wireless device, a wireless communications device, a remote device, a mobile subscriber station, an access terminal (AT) , a mobile terminal, a wireless terminal, a remote terminal, a handset, a terminal, a user agent, a mobile client, a client, a gaming device, an augmented reality device, vehicular component, vehicular device, or vehicular module, or some other suitable terminology. Within the present document, a “mobile” apparatus or UE need not necessarily have a capability to move, and may be stationary. Some non-limiting examples of a mobile apparatus, such as may include implementations of one or more of UEs 915, include a mobile, a cellular (cell) phone, a smart phone, a session initiation protocol (SIP) phone, a wireless local loop (WLL) station, a laptop, a personal computer (PC) , a notebook, a netbook, a smart book, a tablet, and a personal digital assistant (PDA) . A mobile apparatus may additionally be an IoT or “Internet of everything” (IoE) device such as an automotive or other transportation vehicle, a satellite radio, a global positioning system (GPS) device, a global navigation satellite system (GNSS) device, a logistics controller, a flying device, a smart energy or security device, a solar panel or solar array, municipal lighting, water, or other infrastructure; industrial automation and enterprise devices; consumer and wearable devices, such as eyewear, a wearable camera, a smart watch, a health or fitness tracker, a mammal implantable device, gesture tracking device, medical device, a digital audio player (e.g., MP3 player) , a camera, a game console, etc.; and digital home or smart home devices such as a home audio, video, and multimedia device, an appliance, a sensor, a vending machine, intelligent lighting, a home security system, a smart meter, etc. In one aspect, a UE may be a device that includes a Universal Integrated Circuit Card (UICC) . In another aspect, a UE may be a device that does not include a UICC. In some aspects, UEs that do not include UICCs may also be referred to as IoE devices. UEs 915a-915d of the implementation illustrated in FIG. 9 are examples of mobile smart phone-type devices accessing wireless network 900. A UE may also be a machine specifically configured for connected communication, including machine type communication (MTC) , enhanced MTC (eMTC) , narrowband IoT (NB-IoT) and the like. UEs 915e-915k illustrated in FIG. 9 are examples of various machines configured for communication that access wireless network 900.

[0089] A mobile apparatus, such as UEs 915, may be able to communicate with any type of the base stations, whether macro base stations, pico base stations, femto base stations, relays, and the like. In FIG. 9, a communication link (represented as a lightning bolt) indicates wireless transmissions between a UE and a serving base station, which is a base station designated to serve the UE on the downlink or uplink, or desired transmission between base stations, and backhaul transmissions between base stations. UEs may operate as base stations or other network nodes in some scenarios. Backhaul communication between base stations of wireless network 900 may occur using wired or wireless communication links.

[0090] In operation at wireless network 900, base stations 905a-905c serve UEs 915a and 915b using 3D beamforming and coordinated spatial techniques, such as coordinated multipoint (CoMP) or multi-connectivity. Macro base station 905d performs backhaul communications with base stations 905a-905c, as well as small cell, base station 905f. Macro base station 905d also transmits multicast services which are subscribed to and received by UEs 915c and 915d. Such multicast services may include mobile television or stream video, or may include other services for providing community information, such as weather emergencies or alerts, such as Amber alerts or gray alerts.

[0091] Wireless network 900 of implementations supports mission critical communications with ultra-reliable and redundant links for mission critical devices, such UE 915e, which is a aeronautical vehicle. Redundant communication links with UE 915e include from macro base stations 905d and 905e, as well as small cell base station 905f. Other machine type devices, such as UE 915f (thermometer) , UE 915g (smart meter) , and UE 915h (wearable device) may communicate through wireless network 900 either directly with base stations, such as small cell base station 905f, and macro base station 905e, or in multi-hop configurations by communicating with another user device which relays its information to the network, such as UE 915f communicating temperature measurement information to the smart meter, UE 915g, which is then reported to the network through small cell base station 905f. Wireless network 900 may also provide additional network efficiency through dynamic, low-latency TDD communications or low-latency FDD communications, such as in a vehicle-to-vehicle (V2V) mesh network between UEs 915i-915k communicating with macro base station 905e.

[0092] In various implementations, the techniques and apparatus may be used for wireless communication networks such as code division multiple access (CDMA) networks, time division multiple access (TDMA) networks, frequency division multiple access (FDMA) networks, orthogonal FDMA (OFDMA) networks, single-carrier FDMA (SC-FDMA) networks, LTE networks, GSM networks, 5th Generation (5G) or new radio (NR) networks (sometimes referred to as “5G NR” networks, systems, or devices) , as well as other communications networks. As described herein, the terms “networks” and “systems” may be used interchangeably. A CDMA network, for example, may implement a radio technology such as universal terrestrial radio access (UTRA) , cdma2000, and the like. UTRA includes wideband-CDMA (W-CDMA) and low chip rate (LCR) . CDMA2000 covers IS-2000, IS-95, and IS-856 standards. A TDMA network may, for example implement a radio technology such as Global System for Mobile Communication (GSM) . The 3rd Generation Partnership Project (3GPP) defines standards for the GSM EDGE (enhanced data rates for GSM evolution) radio access network (RAN) , also denoted as GERAN. An OFDMA network may implement a radio technology such as evolved UTRA (E-UTRA) , Institute of Electrical and Electronics Engineers (IEEE) 802.11, IEEE 802.16, IEEE 802.20, flash-OFDM and the like. UTRA, E-UTRA, and GSM are part of universal mobile telecommunication system (UMTS) . In particular, long-term evolution (LTE) is a release of UMTS that uses E-UTRA. The various different network types may use different radio access technologies (RATs) and RANs.

[0093] While aspects and implementations are described in this application by illustration to some examples, those skilled in the art will understand that additional implementations and use cases may come about in many different arrangements and scenarios. Innovations described herein may be implemented across many differing platform types, devices, systems, shapes, sizes, packaging arrangements. For example, implementations or uses may come about via integrated chip implementations or other non-module-component based devices (e.g., end-user devices, vehicles, communication devices, computing devices, industrial equipment, retail devices or purchasing devices, medical devices, AI-enabled devices, etc. ) . While some examples may or may not be specifically directed to use cases or applications, a wide assortment of applicability of described innovations may occur. Implementations may range from chip-level or modular components to non-modular, non-chip-level implementations and further to aggregated, distributed, or original equipment manufacturer (OEM) devices or systems incorporating one or more described aspects. In some practical settings, devices incorporating described aspects and features may also necessarily include additional components and features for implementation and practice of claimed and described aspects. It is intended that innovations described herein may be practiced in a wide variety of implementations, including both large devices or small devices, chip-level components, multi-component systems (e.g., radio frequency (RF) -chain, communication interface, processor) , distributed arrangements, end-user devices, etc. of varying sizes, shapes, and constitution.

[0094] In one or more aspects, techniques for supporting data storage and / or data transmission, may include additional aspects, such as any single aspect or any combination of aspects described below or in connection with one or more other processes or devices described elsewhere herein. In a first aspect, an electronic device, such as a UE, may be an apparatus, such as a host device that includes a memory controller configured to couple to an interface to a memory system, in which the memory system may be integrated with the host device or externally coupled to the host device. The memory system may include a memory controller coupled to a memory system through a channel and configured to access data stored in the memory system through the channel and coupled to a host device through a memory interface and configured to communicate with the host device over the memory interface. The operations may be executed as part of an initialization operation, a read operation or a write operation.

[0095] In a first aspect, the memory controller of the memory system may be configured to perform operations including receiving, from the host device through the memory interface, a first write request to write data to a replay protected memory block (RPMB) portion of the memory module, determining a result of the first write request, and storing an indication of the result of the first write request associated with an indication of the first write request in a table of the RPMB portion of the memory module.

[0096] In a second aspect, in combination with the first aspect, the memory controller of the memory system may be further configured to perform operations including receiving, from the host device through the memory interface, a first read request to read a result of the first write request and transmitting, to the host device through the memory interface, an indication of the result of the first write request based on the stored indication of the result of the first write request associated with the indication of the first write request.

[0097] In a third aspect, in combination with one or more of the first aspect or the second aspect, the first write request comprises an indication of a virtual machine (VM) identifier (ID) and the stored indication of the first write request comprises an indication of the VM ID.

[0098] In a fourth aspect, in combination with one or more of the first aspect through the third aspect, the first read request comprises an indication of the VM ID.

[0099] In a fifth aspect, in combination with one or more of the first aspect through the fourth aspect, determining the result of the first write request comprises determining the write request was a success and the memory controller is further configured to perform operations comprising receiving a second write request to write data to the RPMB portion of the memory module, determining a result of the second write request was failure, and storing an indication of the result of the second write request associated with an indication of the second write request in the table of the RPMB portion of the memory module, wherein transmitting the indication of the result of the first write request comprises transmitting an indication that the first write request was a success.

[0100] In a sixth aspect, in combination with one or more of the first aspect through the fifth aspect, the first write request is a priority write request.

[0101] In a seventh aspect, in combination with one or more of the first aspect through the sixth aspect, the table includes a plurality of indications of results of respective write requests associated with respective indications of the respective write requests.

[0102] In an eighth aspect, in combination with one or more of the first aspect through the seventh aspect, determining the result of the first write request comprises determining whether the first write request is a success or a failure.

[0103] In a ninth aspect, in combination with one or more of the first aspect through the eighth aspect, a method includes the apparatus comprises a universal flash storage (UFS) device.

[0104] In a tenth aspect, the memory controller of the host device is configured to perform operations including transmitting, to the memory system through the memory interface, a first write request to write data to a replay protected memory block (RPMB) portion of a memory module of the memory system, transmitting, to the memory system through the memory interface, a first read request to read a result of the first write request from a table of the RPMB portion of a memory module of the memory system, and receiving, from the memory system through the memory interface, an indication of the result of the first write request.

[0105] In an eleventh aspect, in combination with the tenth aspect, the first write request comprises an indication of a virtual machine (VM) identifier (ID) .

[0106] In a twelfth aspect, in combination with one or more of the tenth aspect through the eleventh aspect, the first read request comprises an indication of the VM ID.

[0107] In a thirteenth aspect, in combination with one or more of the tenth aspect through the twelfth aspect, the first write request is a priority write request.

[0108] In a fourteenth aspect, in combination with one or more of the tenth aspect through the thirteenth aspect, the table includes a plurality of indications of results of respective write requests associated with respective indications of the respective write requests.

[0109] In a fifteenth aspect, in combination with one or more of the tenth aspect through the fourteenth aspect, the indication of the result of the first write request comprises an indication of whether the first write request was a success or a failure.

[0110] In a sixteenth aspect, in combination with one or more of the tenth aspect through the fifteenth aspect, the memory system comprises a universal flash storage (UFS) device.

[0111] Those of skill in the art would understand that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may be referenced throughout the above description may be represented by voltages, currents, electromagnetic waves, magnetic fields or particles, optical fields or particles, or any combination thereof.

[0112] Components, the functional blocks, and the modules described herein with respect to FIGs. 1-6 include processors, electronics devices, hardware devices, electronics components, logical circuits, memories, software codes, firmware codes, among other examples, or any combination thereof. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, application, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, and / or functions, among other examples, whether referred to as software, firmware, middleware, microcode, hardware description language or otherwise. In addition, features discussed herein may be implemented via specialized processor circuitry, via executable instructions, or combinations thereof.

[0113] [Corrected under Rule 26, 05.07.2023]Those of skill in the art that one or more blocks (or operations) described with reference to FIG. 4, 5, or 6 may be combined with one or more blocks (or operations) described with reference to another of the figures. For example, one or more blocks (or operations) of FIG. 1 may be combined with one or more blocks (or operations) of FIG. 3. As another example, one or more blocks associated with FIG. 1 may be combined with one or more blocks (or operations) associated with FIG. 4, 5, or 6. Additionally, or alternatively, one or more operations described above with reference to FIGs. 1-3 may be combined with one or more operations described with reference to FIGs. 4-6.

[0114] Those of skill in the art would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure. Skilled artisans will also readily recognize that the order or combination of components, methods, or interactions that are described herein are merely examples and that the components, methods, or interactions of the various aspects of the present disclosure may be combined or performed in ways other than those illustrated and described herein.

[0115] The various illustrative logics, logical blocks, modules, circuits and algorithm processes described in connection with the implementations disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. The interchangeability of hardware and software has been described generally, in terms of functionality, and illustrated in the various illustrative components, blocks, modules, circuits and processes described above. Whether such functionality is implemented in hardware or software depends upon the particular application and design constraints imposed on the overall system.

[0116] The hardware and data processing apparatus used to implement the various illustrative logics, logical blocks, modules and circuits described in connection with the aspects disclosed herein may be implemented or performed with a general purpose single-or multi-chip processor, a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, or, any conventional processor, controller, microcontroller, or state machine. In some implementations, a processor may be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. In some implementations, particular processes and methods may be performed by circuitry that is specific to a given function.

[0117] In one or more aspects, the functions described may be implemented in hardware, digital electronic circuitry, computer software, firmware, including the structures disclosed in this specification and their structural equivalents thereof, or in any combination thereof. Implementations of the subject matter described in this specification also may be implemented as one or more computer programs, which is one or more modules of computer program instructions, encoded on a computer storage media for execution by, or to control the operation of, data processing apparatus.

[0118] If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. The processes of a method or algorithm disclosed herein may be implemented in a processor-executable software module which may reside on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that may be enabled to transfer a computer program from one place to another. A storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such computer-readable media may include random-access memory (RAM) , read-only memory (ROM) , electrically erasable programmable read-only memory (EEPROM) , CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to store desired program code in the form of instructions or data structures and that may be accessed by a computer. Also, any connection may be properly termed a computer-readable medium. Disk and disc, as used herein, includes compact disc (CD) , laser disc, optical disc, digital versatile disc (DVD) , floppy disk, and Blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and instructions on a machine readable medium and computer-readable medium, which may be incorporated into a computer program product.

[0119] Various modifications to the implementations described in this disclosure may be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to some other implementations without departing from the spirit or scope of this disclosure. Thus, the claims are not intended to be limited to the implementations shown herein, but are to be accorded the widest scope consistent with this disclosure, the principles and the novel features disclosed herein.

[0120] Additionally, a person having ordinary skill in the art will readily appreciate, opposing terms such as “upper” and “lower” or “front” and back” or “top” and “bottom” or “forward” and “backward” are sometimes used for ease of describing the figures, and indicate relative positions corresponding to the orientation of the figure on a properly oriented page, and may not reflect the proper orientation of any device as implemented.

[0121] Certain features that are described in this specification in the context of separate implementations also may be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation also may be implemented in multiple implementations separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination may in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.

[0122] Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Further, the drawings may schematically depict one or more example processes in the form of a flow diagram. However, other operations that are not depicted may be incorporated in the example processes that are schematically illustrated. For example, one or more additional operations may be performed before, after, simultaneously, or between any of the illustrated operations. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the implementations described above should not be understood as requiring such separation in all implementations, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products. Additionally, some other implementations are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve desirable results.

[0123] As used herein, including in the claims, the term “or, ” when used in a list of two or more items, means that any one of the listed items may be employed by itself, or any combination of two or more of the listed items may be employed. For example, if a composition is described as containing components A, B, or C, the composition may contain A alone; B alone; C alone; A and B in combination; A and C in combination; B and C in combination; or A, B, and C in combination. Also, as used herein, including in the claims, “or” as used in a list of items prefaced by “at least one of” indicates a disjunctive list such that, for example, a list of “at least one of A, B, or C” means A or B or C or AB or AC or BC or ABC (that is A and B and C) or any of these in any combination thereof. The term “substantially” is defined as largely but not necessarily wholly what is specified (and includes what is specified; for example, substantially 90 degrees includes 90 degrees and substantially parallel includes parallel) , as understood by a person of ordinary skill in the art. In any disclosed implementations, the term “substantially” may be substituted with “within [a percentage] of” what is specified, where the percentage includes . 1, 1, 5, or 10 percent.

[0124] The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples and designs described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims

1.An apparatus, comprising:a memory controller:coupled to a memory module through a channel and configured to access data stored in the memory module through the channel; andcoupled to a host device through a memory interface and configured to communicate with the host device over the memory interface,the memory controller configured to perform operations comprising:receiving, from the host device through the memory interface, a first write request to write data to a replay protected memory block (RPMB) portion of the memory module;determining a result of the first write request; andstoring an indication of the result of the first write request associated with an indication of the first write request in a table of the RPMB portion of the memory module.2.The apparatus of claim 1, wherein the memory controller is further configured to perform operations comprising:receiving, from the host device through the memory interface, a first read request to read a result of the first write request; andtransmitting, to the host device through the memory interface, an indication of the result of the first write request based on the stored indication of the result of the first write request associated with the indication of the first write request.3.The apparatus of claim 2, wherein the first write request comprises an indication of a virtual machine (VM) identifier (ID) and the stored indication of the first write request comprises an indication of the VM ID.4.The apparatus of claim 3, wherein the first read request comprises an indication of the VM ID.5.The apparatus of claim 2, wherein determining the result of the first write request comprises determining the write request was a success and the memory controller is further configured to perform operations comprising:receiving a second write request to write data to the RPMB portion of the memory module;determining a result of the second write request was failure; andstoring an indication of the result of the second write request associated with an indication of the second write request in the table of the RPMB portion of the memory module,wherein transmitting the indication of the result of the first write request comprises transmitting an indication that the first write request was a success.6.The apparatus of claim 1, wherein the first write request is a priority write request.7.The apparatus of claim 1, wherein the table includes a plurality of indications of results of respective write requests associated with respective indications of the respective write requests.8.The apparatus of claim 1, wherein determining the result of the first write request comprises determining whether the first write request is a success or a failure.9.The apparatus of claim 1, wherein the apparatus comprises a universal flash storage (UFS) device.10.A method, comprising:receiving, by a memory controller of a memory system through a memory interface coupling the memory system with a host device, a first write request to write data to a replay protected memory block (RPMB) portion of a memory module in the memory system through a memory interface coupling the memory system with a host device;determining a result of the first write request; andstoring an indication of the result of the first write request associated with an indication of the first write request in a table of the RPMB portion of the memory module.11.The method of claim 10, further comprising:receiving, from the host device through the memory interface, a first read request to read a result of the first write request; andtransmitting, to the host device through the memory interface, an indication of the result of the first write request based on the stored indication of the result of the first write request.12.The method of claim 11, wherein the first write request comprises an indication of a virtual machine (VM) identifier (ID) and the stored indication of the first write request comprises an indication of the VM ID.13.The method of claim 12, wherein the first read request comprises an indication of the VM ID.14.The method of claim 11, wherein determining the result of the first write request comprises determining the write request was a success, further comprising:receiving a second write request to write data to the RPMB portion of the memory module;determining a result of the second write request was failure; andstoring an indication of the result of the second write request associated with an indication of the second write request in the table of the RPMB portion of the memory module,wherein transmitting the indication of the result of the first write request comprises transmitting an indication that the first write request was a success.15.The method of claim 10, wherein the first write request is a priority write request.16.The method of claim 10, wherein the table includes a plurality of indications of results of respective write requests associated with respective indications of the respective write requests.17.The method of claim 10, wherein determining the result of the first write request comprises determining whether the first write request is a success or a failure.18.The method of claim 11, wherein the memory system comprises a universal flash storage (UFS) device.19.An apparatus, comprising:a memory controller of a host device configured to couple the host device to a memory system through a memory interface, the memory controller configured to perform operations including:transmitting, to the memory system through the memory interface, a first write request to write data to a replay protected memory block (RPMB) portion of a memory module of the memory system;transmitting, to the memory system through the memory interface, a first read request to read a result of the first write request from a table of the RPMB portion of a memory module of the memory system; andreceiving, from the memory system through the memory interface, an indication of the result of the first write request.20.The apparatus of claim 19, wherein the first write request comprises an indication of a virtual machine (VM) identifier (ID) .21.The apparatus of claim 20, wherein the first read request comprises an indication of the VM ID.22.The apparatus of claim 19, wherein the first write request is a priority write request.23.The apparatus of claim 19, wherein the table includes a plurality of indications of results of respective write requests associated with respective indications of the respective write requests.24.The apparatus of claim 19, wherein the indication of the result of the first write request comprises an indication of whether the first write request was a success or a failure.25.The apparatus of claim 19, wherein the memory system comprises a universal flash storage (UFS) device.26.A method, comprising:transmitting, by a memory controller of a host device to a memory system coupled to the host device through a memory interface, a first write request to write data to a replay protected memory block (RPMB) portion of a memory module of the memory system;transmitting, to the memory system through the memory interface, a first read request to read a result of the first write request from a table of the RPMB portion of a memory module of the memory system; andreceiving, from the memory system through the memory interface, an indication of the result of the first write request.27.The method of claim 26, wherein the first write request comprises an indication of a virtual machine (VM) identifier (ID) .28.The method of claim 27, wherein the first read request comprises an indication of the VM ID.29.The method of claim 26, wherein the first write request is a priority write request.30.The method of claim 26, wherein the table includes a plurality of indications of results of respective write requests associated with respective indications of the respective write requests.