IP Library Granted Patent US 11,048,436
Granted Patent B2
US 11,048,436 · App. 16/255,677 · Granted Jun 29, 2021

Block storage using a hybrid memory device

Inventors: Scott Chao-Chueh Lee (Bellevue, WA); Robin A. Alexander (Woodinville, WA); Lee E. Prewitt (Mercer Island, WA); Chiuchin Chen (Bellevue, WA); Vladimir Sadovsky (Bellevue, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F3/0659G06F3/06G06F3/0604G06F3/0605G06F3/068G06F3/0646G06F3/0685
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,048,436
App. No.
16/255,677
Granted
Jun 29, 2021
Kind
B2
Abstract

Techniques for block storage using a hybrid memory device are described. In at least some embodiments, a hybrid memory device includes a volatile memory portion, such as dynamic random access memory (DRAM). The hybrid memory device further includes non-volatile memory portion, such as flash memory. In at least some embodiments, the hybrid memory device can be embodied as a non-volatile dual in-line memory module, or NVDIMM. Techniques discussed herein employ various functionalities to enable the hybrid memory device to be exposed to various entities as an available block storage device.

Claims (48)

1. A system comprising:

at least one processor;

one or more hybrid memory devices comprising at least one volatile memory portion and at least one non-volatile memory portion; and

one or more memories storing thereon instructions that, when executed by the at least one processor, cause the system to perform operations including:

detecting the one or more hybrid memory devices;

rendering, on a user interface a visual representation of a mapping between block storage devices and the one or more hybrid memory devices, the mapping comprising multiple instances of hybrid memory devices mapped as one block storage device, or multiple instances of a block storage device mapped to a single instance of a hybrid memory device; and

in response to a user input received via the user interface, storing data at the one or more hybrid memory devices, wherein the one or more hybrid memory devices are accessed via logical block addressing.

2. The system as recited in claim 1 , wherein the multiple hybrid memory devices comprise one or more non-volatile dual in-line memory module devices (NVDIMMs).

3. The system as recited in claim 1 , wherein the operations further include generating at least one entry in a device table for the system that identifies the multiple hybrid memory devices as one or more block storage devices.

4. The system as recited in claim 3 , wherein the device table comprises an advanced configuration and power interface (ACPI) table.

5. The system as recited in claim 1 , wherein the multiple hybrid memory devices are rendered as a single block storage device.

6. The system as recited in claim 1 , wherein the multiple hybrid memory devices comprise a bootable environment stored on the at least one non-volatile memory portion such that the system can be booted from the bootable environment.

7. The system as recited in claim 1 , wherein the visual representation comprises a device object that represents one or more instances of the one or more block storage devices;

wherein the one or more memories store thereon instructions that, when executed by the at least one processor, cause the system to perform operations including:

loading at least one device driver for the multiple hybrid memory devices; and

rendering the visual representation to enable a user to interact directly with the instances of the block storage devices via the device driver and the device object.

8. A computer-implemented method, comprising:

detecting one or more hybrid memory devices on a system;

rendering, on a user interface, a visual representation of a mapping between block storage devices and the one or more hybrid memory devices, the mapping comprising the one or more hybrid memory devices mapped as one block storage device and multiple instances of a block storage device mapped to a single instance of a hybrid memory device; and

storing data at one or more of the one or more hybrid memory devices, wherein the hybrid memory devices are accessed via logical block addressing.

9. The method as described in claim 8 , further comprising:

receiving a notification of an error condition for the system; and

causing data from the system to be stored on at least one of the one or more hybrid memory devices such that the data can be recovered in an event that the system loses the data.

10. The method as described in claim 9 , wherein the data comprises at least one of an image of one or more portions of a volatile memory of the system, or a volatile state of one or more instances of hardware of the system.

11. The method as described in claim 8 , further comprising detecting a different hybrid memory device installed on the system, wherein said rendering comprises exposing the one or more hybrid memory devices and the different hybrid memory device as a single instance of an available block storage device.

12. The method as described in claim 8 , further comprising:

querying the one or more hybrid memory devices for one or more state conditions of the one or more hybrid memory devices; and

initiating one or more actions based on the state conditions.

13. The method as described in claim 8 , further comprising:

initiating a boot process for the system;

detecting a bootable environment stored on at least one of the one or more hybrid memory devices; and

booting the system using the bootable environment from the at least one of the one or more hybrid memory devices.

14. A computer-readable storage medium storing computer-readable instructions that, when executed by a computing device, cause the computing device to perform operations comprising:

detecting one or more hybrid memory devices on a system;

causing rendering, on a user interface, a visual representation of a mapping between block storage devices and the one or more hybrid memory devices, the mapping comprising the one or more hybrid memory devices mapped as one block storage device and multiple instances of a block storage device mapped to a single instance of a hybrid memory device; and

storing data at one or more of the one or more hybrid memory devices, wherein the one or more hybrid memory devices are accessed via logical block addressing.

15. The computer-readable storage medium as recited in claim 14 , wherein the one or more hybrid memory devices comprise a non-volatile dual in-line memory module device (NVDIMM).

16. The computer-readable storage medium as recited in claim 14 , further comprising computer-readable instructions that, when executed by a computing device, cause the computing device to perform operations comprising receiving a user input to select the visual representation of the block storage device for non-volatile storage of data on the computing device.

17. The computer-readable storage medium as recited in claim 14 , further comprising computer-readable instructions that, when executed by a computing device, cause the computing device to perform operations comprising:

receiving a notification event from the block storage device; and

initiating an action based on the notification event and utilizing the computing device.

18. The computer-readable storage medium as recited in claim 17 , wherein the notification event indicates at least one of a hardware error or a software error, and the action comprises writing data to a non-volatile memory portion in response to the notification event.

19. The computer-readable storage medium as recited in claim 14 , further comprising computer-readable instructions that, when executed by a computing device, cause the computing device to perform operations comprising:

querying the one or more hybrid memory devices for a state condition of the one or more hybrid memory devices; and

logging a state of the one or more hybrid memory devices based on the state condition.

20. The computer-readable storage medium as recited in claim 14 , further comprising computer-readable instructions that, when executed by a computing device, cause the computing device to perform operations comprising:

receiving an indication of an event that may cause a loss of data for the computing device; and

saving the data a non-volatile memory portion.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2019
From: LEE, SCOTT CHAO-CHUEH; ALEXANDER, ROBIN A.; PREWITT, LEE E.; CHEN, CHIUCHIN; SADOVSKY, VLADIMIR
To: MICROSOFT CORPORATION
Reel/Frame 048114/0269 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2019
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 048114/0293 →
Continuity (4)
Continuation 16040427 · Jul 19, 2018
Continuation 15340506 · Nov 1, 2016
Continuation 13862104 · Apr 12, 2013
Related Publication 20190155547A1 · May 23, 2019