News Column

Researchers Submit Patent Application, "Reuse of Host Hibernation Storage Space by Memory Controller", for Approval

July 22, 2014



By a News Reporter-Staff News Editor at Information Technology Newsweekly -- From Washington, D.C., VerticalNews journalists report that a patent application by the inventors Salomon, Tavi (Holon, IL); Shalvi, Ofir (Ra'anana, IL); Shachar, Michael (Caesarea, IL); Golov, Oren (Hod-Hasharon, IL), filed on March 5, 2014, was made available online on July 10, 2014.

No assignee for this patent application has been made.

News editors obtained the following quote from the background information supplied by the inventors: "Some computing devices, such as notebook computers, support a hibernation state. The hibernation state is typically a low power consumption state that preserves the state of the computing device and its applications so that operation can later resume without having to restart the applications or the operating system. When preparing to enter hibernation, the computing device stores application data and other information in non-volatile memory. When returning from hibernation to normal operation, the computing device retrieves the stored information, and resumes operation from the point at which it began to hibernate.

"Some storage devices, such as Solid-State Disks (SSD), use arrays of analog memory cells for non-volatile data storage. Each analog memory cell stores a quantity of an analog value, also referred to as a storage value, such as an electrical charge or voltage. This analog value represents the information stored in the cell. In Flash memories, for example, each analog memory cell holds a certain amount of electrical charge. The range of possible analog values is typically divided into intervals, each interval corresponding to one or more data bit values. Data is written to an analog memory cell by writing a nominal analog value that corresponds to the desired bit or bits.

"Some memory devices, commonly referred to as Single-Level Cell (SLC) devices, store a single bit of information in each memory cell, i.e., each memory cell can be programmed to assume two possible programming levels. Higher-density devices, often referred to as Multi-Level Cell (MLC) devices, store two or more bits per memory cell, i.e., can be programmed to assume more than two possible programming levels."

As a supplement to the background information on this patent application, VerticalNews correspondents also obtained the inventors' summary information for this patent application: "An embodiment of the present invention that is described herein provides a method for data storage, including:

"in a host system that operates alternately in a normal state and a hibernation state, reserving a hibernation storage space in a non-volatile storage device for storage of hibernation-related information in preparation for entering the hibernation state; and

"while the host system is operating in the normal state, performing a storage task other than storage of the hibernation-related information using at least a portion of the reserved hibernation storage space.

"In some embodiments, the non-volatile storage device includes multiple memory blocks, and performing the storage task includes allocating over-provisioning memory overhead for copying valid data from partially-programmed memory blocks so as to produce memory blocks ready for erasure, such that at least some of the over-provisioning memory overhead is allocated in the hibernation storage space. In a disclosed embodiment, performing the storage task includes caching the user data accepted from the host system in the hibernation storage space, and subsequently copying the cached user data to storage locations outside the hibernation storage space. In an embodiment, caching the user data includes writing the user data to the hibernation storage space at a first storage throughput, and copying the cached user data includes storing the user data outside the hibernation storage space at a second storage throughput that is lower than the first storage throughput.

"In some embodiments, reserving the hibernation storage space includes allocating a set of the storage locations by the host system to serve as the hibernation storage space, and performing the storage task includes identifying at least part of the storage locations in the set, and performing the storage task using the identified storage locations. In an embodiment, identifying the storage locations in the set includes receiving a notification from the host system indicative of the set of storage locations. In an alternative embodiment, identifying the storage locations in the set includes automatically identifying a file holding the hibernation-related information in a file system of the host system. In yet another embodiment, the method includes, in preparation for entering the hibernation state, receiving the hibernation-related information from the host system using one or more dedicated hibernation write commands, and identifying the storage locations in the set includes detecting the storage locations written to using the dedicated hibernation write commands.

"In a disclosed embodiment, the method includes detecting that the host system is preparing to enter the hibernation state. In an embodiment, the method includes switching to store the hibernation-related information using a high-speed storage configuration responsively to detecting that the host system is preparing to enter the hibernation state. In another embodiment, detecting that the host system is preparing to enter the hibernation state includes detecting one or more dedicated hibernation write commands received from the host system. Alternatively, detecting that the host system is preparing to enter the hibernation state includes detecting one or more write commands to storage locations belonging to the hibernation storage space. Further alternatively, detecting that the host system is preparing to enter the hibernation state includes receiving a notification from the host system indicating a preparation to enter the hibernation state.

"In some embodiments, the method includes detecting that the host system is preparing to exit the hibernation state. In an embodiment, detecting that the host system is preparing to exit the hibernation state includes detecting one or more read commands from storage locations belonging to the hibernation storage space. In an alternative embodiment, detecting that the host system is preparing to exit the hibernation state includes receiving a notification from the host system indicating a preparation to exit the hibernation state.

"In still another embodiment, performing the storage task includes using at least the portion of the hibernation storage space only responsively to verifying that the hibernation-related information is invalid. In another embodiment, the method includes marking the hibernation-related information as invalid after the host system exits from the hibernation state and retrieves the hibernation-related information from the non-volatile storage device. In yet another embodiment, the method includes, in preparation for entering the hibernation state, storing part of the hibernation-related information in the portion of the hibernation storage space used for performing the storage task.

"In some embodiments, the method includes writing user data at a first throughput, and, in preparation for entering the hibernation state, writing the hibernation-related information to the hibernation storage space at a second throughput, higher than the first throughput. In an embodiment, the method includes, in preparation for entering the hibernation state, compressing the hibernation-related information and storing the compressed hibernation-related information in the hibernation storage space. In another embodiment, the method includes receiving a notification from the host system indicating that the host system is preparing to enter the hibernation state, and vacating the portion of the hibernation storage space in response to the notification.

"There is additionally provided, in accordance with an embodiment of the present invention, a method for data storage, including:

"accepting from a host system data, which belongs to one or more files that are organized in accordance with a file system, and storing the data in a non-volatile storage device;

"processing the data stored in the non-volatile storage device so as to identify a file that was marked as invalid by the file system of the host system; and

"releasing a memory space occupied by the identified file in the non-volatile storage device.

"There is also provided, in accordance with an embodiment of the present invention, apparatus for data storage, including:

"a non-volatile memory; and

"a memory controller, which is configured to store data for a host system that operates alternately in a normal state and a hibernation state, to reserve a hibernation storage space in the non-volatile memory for storage of hibernation-related information in preparation for entering the hibernation state, and, while the host system is operating in the normal state, to perform a storage task other than storage of the hibernation-related information using at least a portion of the reserved hibernation storage space.

"There is further provided, in accordance with an embodiment of the present invention, apparatus for data storage, including:

"a non-volatile memory; and

"a memory controller, which is configured to accept from a host system data belonging to one or more files that are organized in accordance with a file system, to store the data in the non-volatile storage device, to process the data stored in the non-volatile storage device so as to identify a file that was marked as invalid by the file system of the host system, and to release a memory space occupied by the identified file in the non-volatile storage device.

"The present invention will be more fully understood from the following detailed description of the embodiments thereof, taken together with the drawings in which:

BRIEF DESCRIPTION OF THE DRAWINGS

"FIG. 1 is a block diagram that schematically illustrates a computing device that supports a hibernation state, in accordance with an embodiment of the present invention;

"FIG. 2 is a diagram that schematically illustrates a hibernation storage space used for storage management during normal operation, in accordance with an embodiment of the present invention; and

"FIG. 3 is a flow chart that schematically illustrates a method for operating a Solid-State Disk (SSD) in a computing device that supports hibernation, in accordance with an embodiment of the present invention."

For additional information on this patent application, see: Salomon, Tavi; Shalvi, Ofir; Shachar, Michael; Golov, Oren. Reuse of Host Hibernation Storage Space by Memory Controller. Filed March 5, 2014 and posted July 10, 2014. Patent URL: http://appft.uspto.gov/netacgi/nph-Parser?Sect1=PTO2&Sect2=HITOFF&u=%2Fnetahtml%2FPTO%2Fsearch-adv.html&r=642&p=13&f=G&l=50&d=PG01&S1=20140703.PD.&OS=PD/20140703&RS=PD/20140703

Keywords for this news article include: Patents, Information Technology, Information and Data Storage.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Information Technology Newsweekly


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters