Patent Description:
The disclosure, in various embodiments, relates generally to the field of computer systems and mass storage devices. More specifically, the disclosure relates to mass storage devices configured to operate as either a hybrid drive or a stand-alone drive depending on its mode of operation.

Non-volatile memory is commonly used for mass storage of data, such as within consumer electronic devices. Various types of mass storage devices are currently in use, such as solid state devices (SSDs), hard disk drives (HDDs), and hybrid drives. SSDs use solid state memory devices (e.g., Flash memory), which can have advantages over the traditional electro-mechanical magnetic HDDs due to fast data access times, low power consumption, and no moving mechanical parts. As a result, SSDs have been a popular data storage device for the PC and notebook markets. SSDs, however, are more expensive to produce than HDDs. Thus, HDDs are often the drive of choice when large storage is desired at a lower price.

Hybrid drives include features of both the SSDs and HDDs in that traditional magnetic HDD storage media is used for long term storage and solid state Flash-type storage media is used for cache storage. Thus, hybrid drives have become desirable because they deliver higher performance than conventional drives, but at a more reasonable cost. For example, a hybrid drive can bring more SSD-like performance with the inclusion of Flash memory, but retain the high capacity and some of the lower cost associated with an HDD. As a result, the small amount of solid state memory used in the hybrid drive may result in lower boot times and data access times as well as power savings, but conventional hybrid drives may also limit flexibility in solid state media capacity and add significant complexity for the system manufacturer where multiple hybrid capacity offerings are desired. Because conventional hybrid drives may add complexity to the overall offerings for original equipment manufacturers (OEMs), OEMs may simply offer a smaller set of drive types for consumers to choose from. This same complexity of offerings may exist at the HDD or hybrid drive manufacturer, limiting the number of drive types they may offer as well.

<CIT> relates to re-configuring a data storage and a cache when a secondary memory device is added to supplement its caching capacity.

In the following detailed description, reference is made to the accompanying drawings which form a part hereof, and in which is illustrated specific embodiments in which the disclosure may be practiced. These embodiments are described in sufficient detail to enable those of ordinary skill in the art to practice the disclosure. It should be understood, however, that the detailed description and the specific examples, while indicating examples of embodiments of the disclosure, are given by way of illustration only and not by way of limitation. From this disclosure, various substitutions, modifications, additions, rearrangements, or combinations thereof within the scope of the disclosure may be made and will become apparent to those of ordinary skill in the art.

The illustrations presented herein are not meant to be actual views of any particular apparatus (e.g., device, system, etc.) or method, but are merely idealized representations that are employed to describe various embodiments of the disclosure. Accordingly, some of the drawings may be simplified for clarity. Thus, the drawings may not depict all of the components of a given apparatus (e.g., device) or all operations of a particular method. In addition, like reference numerals may be used to denote like features throughout the specification and figures.

Some drawings may illustrate signals as a single signal for clarity of presentation and description. It will be understood by a person of ordinary skill in the art that the signal may represent a bus of signals, wherein the bus may have a variety of bit widths and the disclosure may be implemented on any number of data signals including a single data signal.

The various illustrative logical blocks, modules, circuits, and algorithm acts described in connection with embodiments disclosed herein may be implemented or performed with a general-purpose processor, a special-purpose 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 processor herein may be any processor, controller, microcontroller, or state machine suitable for carrying out processes of the disclosure. A processor may also 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. When configured according to embodiments of the disclosure, a special-purpose computer improves the function of a computer because, absent the disclosure, the computer would not be able to carry out the processes of the disclosure. The disclosure also provides meaningful limitations in one or more particular technical environments that go beyond an abstract idea. For example, embodiments of the disclosure provide improvements in the technical field of memory devices, particularly for hybrid drives being configured to operate in either a stand-alone mode or a hybrid mode. Embodiments include features that improve the functionality of the hybrid drive such that a new device and method for operating the hybrid drive are described.

In addition, it is noted that the embodiments may be described in terms of a process that is depicted as a flowchart, a flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe operational acts as a sequential process, many of these acts can be performed in another sequence, in parallel, or substantially concurrently. In addition, the order of the acts may be re-arranged. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, interfacing with an operating system, etc. Furthermore, the methods disclosed herein may be implemented in hardware, software, or both. If implemented in software, the functions may be stored or transmitted as one or more instructions (e.g., software code, firmware, etc.) on a computer-readable medium.

Embodiments of the present disclosure include a computer system comprising a chipset and a multi-mode hybrid drive operably coupled with the chipset. In some embodiments, the multi-mode hybrid drive is configured to enable a stand-alone mode for the multi-mode hybrid drive responsive to a removable cache memory device not being coupled to a cache port of the multi-mode hybrid drive, and to enable a hybrid mode for the multi-mode hybrid drive responsive to the removable cache memory device being coupled to a cache port of the multi-mode hybrid drive. As used herein, the term "cache port" does not denote any particular required physical structure for coupling a removable cache memory. In addition, the term "cache" is used for convenience to refer to a common usage of a hybrid drive being as a temporary cache of data storage that may be duplicated in the main storage area. In some embodiments, however, it is contemplated that the data stored in the cache may not be duplicated in the main storage area. In such an embodiment, the cache memory device may be considered a different tier of storage from the main storage area such that data in the cache memory device may not necessarily be duplicated in the main storage area or may be temporary in nature.

<FIG> is a simplified block diagram of a computer system <NUM> according to an embodiment of the present disclosure. The computer system <NUM> may be a consumer electronic device, such as a desktop computer, a laptop computer, a tablet computer, an electronic reader, a smart phone or other type of communication device, as well as any type of computing system (e.g., a server) incorporating non-volatile storage.

The computer system <NUM> includes a chipset <NUM> (also referred to as a "host") that includes one or more memory controller hubs <NUM>, <NUM>. In particular, the chipset <NUM> may include a memory controller hub <NUM> (also referred to as a "northbridge") and an I/O controller hub <NUM> (also referred to as a "southbridge"). The memory controller hubs <NUM>, <NUM> may include one or more processors (e.g., single core, multi-core, etc.). Of course, some embodiments may include an integrated chipset that incorporates the features of the northbridge/southbridge configuration into a single integrated circuit having a single processor die.

The computer system <NUM> may also include different devices and ports coupled with the chipset <NUM> through different communication buses. For example, the memory controller hub <NUM> may be coupled with a processor <NUM>, volatile memory <NUM>, a graphics processor <NUM>, and a display <NUM>. The processor <NUM> may be the central processing unit (CPU) for the computer system <NUM>. The volatile memory <NUM> may include random-access memory (RAM) that may also be referred to as "system memory" (e.g., DRAM, SDRAM, LPDDR, etc.). The graphics processor <NUM> is configured to handle a variety of multimedia tasks responsive to receiving data from the chipset <NUM> to provide the video display signals to the display <NUM>. The memory controller hub <NUM> is configured to enable the processor <NUM>, the volatile memory <NUM>, the graphics processor <NUM> to communicate with each other, as well as to communicate with the devices and ports coupled with the I/O controller hub <NUM>.

The I/O controller hub <NUM> may be coupled with a hybrid drive <NUM>, as well as other I/O devices and ports such as a super I/O controller <NUM> and I/O devices <NUM>, USB ports <NUM>, and other network interfaces <NUM>. Of course, it is recognized that the computer system <NUM> shown in <FIG> is a simplified configuration. Other resources and devices may also be included as desired, such as an optical drive (e.g., DVD, Blu-ray, etc.). In addition, some components shown as separate may exist in an integrated package or be integrated in a common integrated circuit with other components. Systems may also include a variety of components, including parallel (e.g., redundant) resources. The hybrid drive <NUM> may be a multi-mode drive that is configured to operate in either a stand-alone mode or a hybrid mode, which will be discussed further below with reference to <FIG> and <FIG>.

In some embodiments, a hybrid memory drive comprises a bulk memory device and a removable cache memory device. The bulk memory device includes bulk storage media, a cache port, and a first controller operably coupled with the cache port and the bulk storage media. The bulk storage media includes non-volatile memory. The removable cache memory device includes cache storage media including non-volatile memory and a second controller operably coupled with the cache storage media. The first controller is configured to operate the bulk memory device in either a stand-alone mode or a hybrid mode responsive to detecting the removable cache memory device being at least one of coupled with the cache port of the bulk memory device or valid for use as a cache for the bulk memory device to operate as a hybrid drive.

In some embodiments, a non-volatile memory drive comprises bulk storage media including physical blocks of non-volatile memory, a cache port, and a controller operably coupled with the bulk storage media and the cache port. The controller is configured to detect whether a removable cache memory device having non-volatile memory is coupled with the cache port, and operate the non-volatile memory drive to use the removable cache memory device as a data cache during at least one of a read or write operation responsive to detecting the removable cache memory device is at least one of coupled or valid for use in with the bulk storage media as a hybrid drive.

The hybrid drive <NUM> may be coupled with the I/O controller hub <NUM> using a serial or parallel data bus. For example, the data bus from the hybrid drive <NUM> to the chipset <NUM> may include a Peripheral Component Interconnect Express (PCIe) bus, Serial Advanced Technology Attachment (SATA) bus, Parallel Advanced Technology Attachment (PATA) bus, Small Computer System Interface (SCSI) bus, Serial-attached SCSI (SAS) bus, a Universal Serial Bus (USB), or combinations thereof.

<FIG> is a simplified block diagram of the hybrid drive <NUM> of <FIG>. The hybrid drive <NUM> includes a bulk memory device <NUM> and a removable cache memory device <NUM>. The bulk memory device <NUM> may be configured to operate in either a stand-alone mode or a hybrid mode responsive to detecting the presence of the removable cache memory device <NUM> being coupled with the bulk memory device <NUM>. For example, the bulk memory device <NUM> may be configured to operate in the stand-alone mode if the removable cache memory device <NUM> is not coupled with the bulk memory device <NUM>, and in the hybrid mode if the removable cache memory device <NUM> is coupled with the bulk memory device <NUM>.

The bulk memory device <NUM> may include a first controller <NUM>, bulk storage media <NUM>, and a cache port <NUM>. The first controller <NUM> of the bulk memory device <NUM> may be coupled with the I/O controller hub <NUM> via a first bus <NUM>. The first controller <NUM> of the bulk memory device <NUM> may be coupled with the bulk storage media <NUM> via a second bus <NUM>. The first controller <NUM> of the bulk memory device <NUM> may be coupled with the cache port <NUM> via a third bus <NUM>.

The bulk storage media <NUM> may include non-volatile memory. Embodiments of the present disclosure include non-volatile memory arrays of a variety of different configurations and capacity. In some embodiments, the non-volatile memory may be configured as an HDD, as an SSD, or as another suitable type of long term data storage. In some embodiments, the HDD may include magnetic media. In some embodiments, the bulk storage media <NUM> may be configured as solid state media (e.g., an SSD). The solid state media may include memory such as Flash-based memory (e.g., NAND Flash), which may include blocks of single-level cells (SLC), multi-level cells (MLC) (e.g., triple-level cells (TLC), quad-level cells (QLC), etc.), or combinations thereof.

The removable cache memory device <NUM> may include a second controller <NUM> operably coupled with cache storage media <NUM>. The cache storage media <NUM> may also include non-volatile memory. In some embodiments, the non-volatile memory of the cache storage media <NUM> may be configured with solid state media, such as Flash-based memory (e.g., NAND Flash) or 3D XPoint. In some embodiments, the removable cache memory device <NUM> may be configured as a secure digital (SD) card, a CFX card, or as a card that employs other non-volatile memory technologies having an embedded controller. The second controller <NUM> may be configured to perform the media management functions (e.g., read/write) for the removable cache memory device <NUM> responsive to commands received from the bulk memory device <NUM>.

The cache port <NUM> may, optionally, be integrated (e.g., as a slot, a port, etc.) with the form factor of the bulk memory device <NUM> such that the removable cache memory device <NUM> may be inserted into the cache port <NUM> to transform the bulk memory device <NUM> into a hybrid drive. In some embodiments, the cache port <NUM> may be exposed to an outside of the form factor (e.g., box) of the memory device <NUM>. When connected, the bulk memory device <NUM> and the removable cache memory device <NUM> may be essentially a single unit, which may enable the drive manufacturer and/or OEM to determine whether the drive for a particular product should be a stand-alone drive or a hybrid drive. In addition, the drive manufacturer and/or OEM may determine the capacity of the hybrid drive by mixing and matching bulk memory devices <NUM> with removable cache memory devices <NUM> having the desired combination of bulk storage capacity and cache storage capacity while maintaining a common form factor.

The bulk memory device <NUM> includes firmware (e.g., stored in the bulk storage media <NUM> or other memory) configured to detect the presence of the removable cache memory device <NUM> and cause the first controller <NUM> to reconfigure the operation of the bulk memory device <NUM> in either a stand-alone mode or a hybrid mode depending on the presence of the removable cache memory device <NUM> in the cache port <NUM>. As a result, the bulk memory device <NUM> may run the software to operate as either a stand-alone drive or a hybrid drive to determine where data is stored and retrieved during operation. Thus, the host may not need to have its software reconfigured, which may result in a simpler implementation for the OEM and/or the drive manufacturer when assembling the hybrid drive. In addition, because the removable cache memory device <NUM> has its own controller (i.e., second controller <NUM>) configured to perform the media management functions for the removable cache memory device <NUM>, the firmware of the bulk memory device <NUM> may be simplified in hybrid mode as the built-in firmware on the removable cache memory device <NUM> may already be able to perform the cache functions responsive to receiving commands from the bulk memory device <NUM>.

The buses <NUM>, <NUM> coupling the first controller <NUM> to the external devices (e.g., chipset <NUM> (<FIG>), removable cache memory device <NUM>) may be configured with one or more different interface configurations, such as PCIe, SATA, PATA, SCSI, SAS, or combinations thereof. Other interface configurations and protocols are also contemplated. In some embodiments, the first bus <NUM> and the third bus <NUM> may be configured according to the same type of interface and communicate via the same protocol. For example, both the first bus <NUM> and the third bus <NUM> may be configured as a PCIe bus and the first controller <NUM> may be configured to communicate using a non-volatile memory express (NVME) protocol. In some embodiments, the first bus <NUM> and the third bus <NUM> may be configured according to a different type of interface and communicate via a different protocol. For example, the first bus <NUM> may be configured as a SATA bus for the first controller <NUM> to communicate with the I/O controller hub <NUM>, and the third bus <NUM> may be configured as a PCIe bus for the first controller <NUM> to communicate with the removable cache memory device <NUM>. In such an embodiment, the first controller <NUM> may be configured to perform a translation between the different protocols used to communicate over the different interfaces.

In order for the cache storage media <NUM> to be used to cache data during operation to speed up the operation of the hybrid drive <NUM>, the cache storage media <NUM> may be configured with faster memory than the bulk storage media <NUM>. In such an embodiment, a suitable NAND-based Flash device may be used as the removable cache memory device <NUM> in combination with an HDD drive including the internal bulk storage media. Many NAND-based Flash devices are faster than an HDD drive, which means that many NAND-based Flash devices may provide a valid combination with the HDD drive to improve its speed with the removable cache memory device <NUM>. In another embodiment, a suitable NAND, 3D Xpoint, or other non-volatile memory based device may be used as the removable cache memory device <NUM> in combination with an SSD drive including the internal bulk storage media. Some NAND-based Flash devices may be slower than an SSD drive depending on the specific type of memory used in each. As a result, using slower memory as the removable cache memory device <NUM> in comparison to the bulk memory device <NUM> may not actually improve performance relative to just using the bulk storage media <NUM> for both bulk storage and cache storage. Thus, the storage controller <NUM> may determine that the specific combination of the bulk memory device <NUM> with the removable cache memory device <NUM> is invalid. Similarly, the storage controller <NUM> may determine that the storage media in the removable cache device <NUM> has other characteristics (e.g., capacity, endurance) that make it unsuitable for use as a cache for the bulk memory device <NUM>, and determine the combination invalid.

Embodiments of the present disclosure also include methods of operating a multi-mode hybrid drive. Such a method may comprise monitoring a cache port of a bulk memory device to determine a presence of a removable cache memory device, operating the bulk memory device as a stand-alone drive responsive to determining the removable cache memory device is not present, and operating the bulk memory device as a hybrid drive using the removable cache memory device as a data cache responsive to determining the removable cache memory device is present and valid.

<FIG> is a flowchart <NUM> illustrating a method of operating a bulk memory device as either a stand-alone drive or a hybrid drive according to an embodiment of the present disclosure. At operation <NUM>, the bulk memory device may monitor the cache port. As discussed above, the cache port may be integrally formed within the form factor of the bulk memory device to receive a removable cache device inserted therein. Such monitoring may be initiated at power up of the bulk memory device as well as throughout operation of the bulk memory device.

At operation <NUM>, the bulk memory device may determine if the removable cache memory device is present in the cache port. If not, the stand-alone mode of the bulk memory device may be enabled at operation <NUM>, and the bulk memory device may continue to monitor the cache port until a removable cache memory device is present. During stand-alone mode, data accesses (e.g., read/write) may be performed in the bulk storage media of the bulk memory device only.

At operation <NUM>, the bulk memory device may interrogate the cache memory device. For example, the first controller of the bulk memory device may talk with the second controller of the removable cache memory device to determine operational parameters (e.g., capacity, type, endurance, speed, etc.) of the removable cache memory.

At operation <NUM>, the bulk memory device may determine if the removable cache memory device is valid for the intended usage scenario. For example, the bulk memory device may determine if the type of memory is compatible with the controller of the bulk memory device. The bulk memory device may also determine if the capacity, endurance, and/or speed is above a desired threshold and/or within a desired range of operation. For example, if the speed of the removable cache memory device is slower than the speed of the bulk memory device, then the bulk memory device may be better off operating in its stand-alone mode because using the removable cache memory device to cache data in hybrid mode may not improve performance. Similarly, if the capacity of the removable cache memory device is below a predetermined threshold for its intended use, then the bulk memory device may be better off operating in its stand-alone mode.

Claim 1:
A multi-mode hybrid drive (<NUM>), comprising: a bulk memory device (<NUM>) including:
bulk storage media (<NUM>); and
a controller (<NUM>) coupled with the bulk storage media (<NUM>) and configured to:
operate the bulk memory device (<NUM>) in a hybrid mode responsive to determining, through firmware stored in the bulk storage media (<NUM>), the bulk memory device (<NUM>) is coupled with a removable cache memory device (<NUM>) and the removable cache memory is valid for the hybrid mode based on the removable cache memory having one or more of a capacity, an endurance, and a speed above respective thresholds; and
operate the bulk memory device (<NUM>) in a stand-alone mode responsive to monitoring a cache port (<NUM>) of the bulk memory device (<NUM>); and determining, through the firmware, one of:
the removable cache memory device (<NUM>) is not present; and
the removable cache memory device (<NUM>) is present but invalid for the hybrid mode based on each of the capacity, the endurance, and the speed of the removable cache memory (<NUM>) being at or below the respective thresholds;
wherein:
during the stand-alone mode, data accesses are performed in the bulk storage media (<NUM>) only; and
during the hybrid mode, the controller (<NUM>) coordinates data accesses between the removable cache memory device (<NUM>) and the bulk storage media (<NUM>).